Hallo erstmal
ich habe hier im Forum schon viele Antworten gefunden- aber auf dieses Poblem leider nicht , da muss ich wohl mal was verfassen.
Folgender Sachverhalt: ich (praktikantin, nicht mehr ganz aber schon noch anfängerin in java und ganz alleine- keine sau hat ahnung von Java) soll
aus einer csv datei Strings einlesen und diese in eine mysql datenbank schreiben.
Ansatz 1: mysql bietet ja von sich aus die funktion an csv zu importieren- das habe ich versucht mit dieser methode:
[Java] public void importData(Connection conn, String filename) {
Statement stmt;
String query;
try {
stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
query = "LOAD DATA INFILE '" + filename
+ "' INTO TABLE mitarbeiter (mitarbeiternr,vname,nname,abteilung,position);";
stmt.executeUpdate(query);
} catch (Exception e) {
e.printStackTrace();
stmt = null;
}
}[/Java]
die methode rufe ich dann in der main mit entsprechender datenbankverbindung auf
und bekomme folgende fehler meldung:
com.mysql.jdbc.MysqlDataTruncation:
Data truncation: Data too long for column 'mitarbeiternr' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489,3423,1936,2060,2536,1564,1485)
in meinem csv file steht als erstes , was ja schon scheitert eine 4 . ich habe die tabelle(die existiert nur zum testzweck) schon geändert und nun alles auf varchar(30) ohne pk stehen.was ist da nur zu lang?
okay ansatz 2:
dacht ich mir ich lade eben die strings aus dem csv file selber und habe dazu auch einen schönen code gefunden(ich glaube sogar hier im forum), der die strings aus dem csv in die konsole schreibt was auch wunderbar klappt.
nun will ich ja aber die strings übergeben a und so habe ich den code etwas modifiziert damit ich auch strings bekomme
daraufhin bekomme ich ein outofbounds
irgendwie scheint bei mir alles zu groß zu sein...
ich habe hier im Forum schon viele Antworten gefunden- aber auf dieses Poblem leider nicht , da muss ich wohl mal was verfassen.
Folgender Sachverhalt: ich (praktikantin, nicht mehr ganz aber schon noch anfängerin in java und ganz alleine- keine sau hat ahnung von Java) soll
aus einer csv datei Strings einlesen und diese in eine mysql datenbank schreiben.
Ansatz 1: mysql bietet ja von sich aus die funktion an csv zu importieren- das habe ich versucht mit dieser methode:
[Java] public void importData(Connection conn, String filename) {
Statement stmt;
String query;
try {
stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
query = "LOAD DATA INFILE '" + filename
+ "' INTO TABLE mitarbeiter (mitarbeiternr,vname,nname,abteilung,position);";
stmt.executeUpdate(query);
} catch (Exception e) {
e.printStackTrace();
stmt = null;
}
}[/Java]
die methode rufe ich dann in der main mit entsprechender datenbankverbindung auf
und bekomme folgende fehler meldung:
com.mysql.jdbc.MysqlDataTruncation:
Data truncation: Data too long for column 'mitarbeiternr' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489,3423,1936,2060,2536,1564,1485)
in meinem csv file steht als erstes , was ja schon scheitert eine 4 . ich habe die tabelle(die existiert nur zum testzweck) schon geändert und nun alles auf varchar(30) ohne pk stehen.was ist da nur zu lang?
okay ansatz 2:
dacht ich mir ich lade eben die strings aus dem csv file selber und habe dazu auch einen schönen code gefunden(ich glaube sogar hier im forum), der die strings aus dem csv in die konsole schreibt was auch wunderbar klappt.
nun will ich ja aber die strings übergeben a und so habe ich den code etwas modifiziert damit ich auch strings bekomme
Java:
public String formatCsv() {
int max = list.size();
int i;
for( i=0; i<max; i++) {
}
return list.get(i).toString();
}
daraufhin bekomme ich ein outofbounds
irgendwie scheint bei mir alles zu groß zu sein...
Zuletzt bearbeitet: