# csv in datenbank schreiben



## glubsch (17. Mrz 2006)

hallo,

ich versuch eine große csv-Datei(bis zu 200mb) in eine Datenbank zu schreiben.
ich lese die datei mit nem bufferReader zeilenweise ein. allerdings bricht der reader nach 5130 datensätzen die in die db geschrieben wurden ab. auf welche weise kann ich die ganze datei einlesen?



> BufferedReader csv_file = new BufferedReader(new FileReader("test3.csv"));
> long i=0;
> 
> while (((csv =csv_file.readLine()) != null))
> ...



mfg glubsch


----------



## bronks (17. Mrz 2006)

Was für eine Exception kommt?


----------



## glubsch (17. Mrz 2006)

komischerweise wird keine exception ausgeworfen!


----------



## bronks (17. Mrz 2006)

glubsch hat gesagt.:
			
		

> komischerweise wird keine exception ausgeworfen!


Versuch mal folgendes Experiment: Nimm in der 4ten Zeile das != null raus und lass die Sache mal laufen. Was passiert nach 5130 datensätzen?


----------



## glubsch (17. Mrz 2006)

das macht er nicht!


> Exception in thread "main" java.lang.Error: Unresolved compilation problem:
> Type mismatch: cannot convert from String to boolean


----------



## bronks (17. Mrz 2006)

glubsch hat gesagt.:
			
		

> das macht er nicht!
> 
> 
> > Exception in thread "main" java.lang.Error: Unresolved compilation problem:
> > Type mismatch: cannot convert from String to boolean


Ja, logo! Wo hab ich blos hingedacht.

Dein Beispielcode ist an ein paar Stellen so vermurxt, daß man ihn so nicht laufen lassen konnte. Untersuch das ganze auf korrekte Logik und fahr die Zeile 5130 im Debugger an, denn ohne eine Exception kann es nur ein selbstgestricktes Problem sein. Mir gefällt an Deinem Code die Deklaration innerhalb der Schleife garnicht.

Diesen Code habe ich gerade auf ein 26000zeilige CSV ohne Probs laufen lassen:


```
public static void main(String[] args) {
        String slQuery=null;
        String csv=null;
        String[] werte = new String[9];
        
        try{
            BufferedReader csv_file = new BufferedReader(new FileReader("c:/zCsvTest.csv"));
            long i=0;
            
            while (((csv = csv_file.readLine()) != null)) {
                werte = csv.split(";");
                slQuery="INSERT INTO out_coder VALUES('" +werte[0] + "','" +werte[1]+ "','" +werte[2] + "','"
                        +werte[3] + "','" + werte[4] + "')";
                
                System.out.println(i + " " + slQuery);
                
                i++;
            }
        }catch(Exception e){e.printStackTrace();}
    }
```


----------



## glubsch (17. Mrz 2006)

vielen Dank!
es geht jetzt! ich hab den genauen fehler zwar nicht gefunden. habs deshalb halt einfach neu geschreiben!

nochmal merci

mfg glubsch


----------

