# String aus txtDatei auslesen und in Datenbank schreiben.



## blade (19. Nov 2010)

Hallo, ich möchte gerne aus einer Textdatei einen String auslesen und diesen per SQL an eine DB2 übergeben.
Auslesen der TextDatei mache ich mit einem BufferedReader.
Wie kann ich denn jetzt den String Zeile der SQL anweisung übergeben? So das ich ihn Inserten kann?
Hat vielleicht jemand eigene Datenabmeldescripte die er auch noch als Beispiel posten kann?
Bin für jede Hilfe dankbar!

Gruß



```
//Datei zeilenweise einlesen

    public static void main(String[] args) {

    try {
            BufferedReader in = new BufferedReader(new FileReader("C:/test/test.mrc"));
            String zeile = null;
             while ((zeile = in.readLine()) != null){
            System.out.println("Gelesene Zeile" + zeile);

            //String[] substring =zeile.split( "," );
               // System.out.println(substring[]);
         }
               
         } catch (IOException e) {
            e.printStackTrace();
        }
    }
```







```
// Verbindung zur Datenbank herstellen

            try {
                String url = "jdbc:db2://localhost:50000/TESTDB";
                Connection con = null;
                con = DriverManager.getConnection(url, "db2user", "12345");


                Statement stmt = con.createStatement();
                String query = ("SELECT * FROM \"SYSTEM\".\"AUTO\"");
                ResultSet rs = stmt.executeQuery(query);

                while ( rs.next() )
                System.out.printf( rs.getString(1));
                           //rs.getString(2), rs.getString(3) );

                rs.close();
                stmt.close();
                con.close();

                } catch (SQLException exc) {
                System.out.println("JDBC/SQL error: " + exc.toString());
                return;

        }
```


----------



## DerEisteeTrinker (19. Nov 2010)

Probier es mal mit einem PreparedStatement und nem Insert-SQL-Statement


----------



## ARadauer (19. Nov 2010)

was steht in der text datei?
fertige insert statements?


dann statt dem stmt.executeUpdate(query)


----------



## blade (19. Nov 2010)

In meiner Textdatei steht nur text getrennt mit kommas.

test1, test2, test3, test4, test5,
qtest1, qtest2, qtest3, qtest4, qtest5,
etest1, etest2, etest3, etest4, etest5,
ftest1, ftest2, ftest3, ftest4, ftest5,
vtest1, vtest2, vtest3, vtest4, vtest5,

wollte das erste wort in spalte1, wort 2 in spalte 2 usw. usw. schreiben,
zeile zwei sollauch in zeile zwei der tabelle.


----------



## SlaterB (19. Nov 2010)

nichts einfacher als das mit zeilenweiser Verarbeitung, Zeile nach "," auftrennen, ein SQL-Insert für alle benötigten Spalten usw.,
von selbst passiert das nicht falls du kein Tool hast das der Anleitung nach genau dies erledigt


----------



## Michael... (19. Nov 2010)

Hab jetzt keine (positiven ;-)) Erfahrungen mit DB2, aber grundsätzlich bringen Datenbanken Tools mit, die wesentlich schneller und effizienter solche Sachen wie den Datenimport aus Textdateien erledigen.

Wenn Du's aber dennoch selbst machen willst:
1 - PreparedStatement definieren
2 - Datei öffenen
3 - Zeile einlesen
4 - Zeile per split(",") zerlegen
5 - die einzelnen Werte dem PreparedStatement übergeben
6 - Statement ausführen
7 - falls Dateiende noch nicht erreicht: zurück zu Schritt 3


----------



## blade (19. Nov 2010)

Sehr cool danke an alle!

Hat vielleicht einer noch ein Code Beispiel?


----------



## bone2 (19. Nov 2010)

für welchen der 7 schritte?


----------



## ARadauer (19. Nov 2010)

> Hat vielleicht einer noch ein Code Beispiel?


gibt tausende anleitungen im netz wie du eine prepared statment mit jdbc absetzt......


----------

