Ich habe in meinem Programm eine Verbindung mit einer Access-Datenbank hergestellt. Nun soll das Programm in jede Zeile der Spalte Zufallsschluessel einen Zufallsstring der aus drei Zeichen besteht einsetzen. Mein Quellcode mit dem ich den Zufallsgenerator aufrufe sieht so aus:
[JAVA=42]
String allowedChars = "abcdefghijklmnopqrstuvwxyz";
Random random = new Random();
for (int id=1; id<106; id++){
String randomString = generateRandomString(allowedChars, random);
System.out.println(randomString);
String sqlString = "UPDATE Tabelle1 SET Zufallsschluessel = '" + randomString + "' WHERE ID="+id+"";
System.out.println(sqlString);
sqlStatement = dbVerbindung.createStatement();
System.out.println("test1");
resultSet = sqlStatement.executeQuery(sqlString);
System.out.println("test2");
}
[/code]
Der Quellcode der Zufallsgeneratorklasse sieht so aus:
[JAVA=42]
private String generateRandomString(String allowedChars, Random random) {
int max = allowedChars.length();
StringBuffer buffer = new StringBuffer();
for (int i=0; i<3; i++){
int value = random.nextInt(max);
buffer.append(allowedChars.charAt(value));
}
return buffer.toString();
}
[/code]
Nun bricht die for-Schleife nach dem executeQuery ab, auch die Ausgabe von test2 erfolgt nicht und er schreibt mir nur in die erste Zeile den Zufallsstring.
Wenn ich den executeQuery weglasse zeigt er zwar jedes mal den sqlString korrekt an, aber die Änderungen in der Datenbank werden ja nicht ausgeführt.
Weis jemand was ich da machen muss?
[JAVA=42]
String allowedChars = "abcdefghijklmnopqrstuvwxyz";
Random random = new Random();
for (int id=1; id<106; id++){
String randomString = generateRandomString(allowedChars, random);
System.out.println(randomString);
String sqlString = "UPDATE Tabelle1 SET Zufallsschluessel = '" + randomString + "' WHERE ID="+id+"";
System.out.println(sqlString);
sqlStatement = dbVerbindung.createStatement();
System.out.println("test1");
resultSet = sqlStatement.executeQuery(sqlString);
System.out.println("test2");
}
[/code]
Der Quellcode der Zufallsgeneratorklasse sieht so aus:
[JAVA=42]
private String generateRandomString(String allowedChars, Random random) {
int max = allowedChars.length();
StringBuffer buffer = new StringBuffer();
for (int i=0; i<3; i++){
int value = random.nextInt(max);
buffer.append(allowedChars.charAt(value));
}
return buffer.toString();
}
[/code]
Nun bricht die for-Schleife nach dem executeQuery ab, auch die Ausgabe von test2 erfolgt nicht und er schreibt mir nur in die erste Zeile den Zufallsstring.
Wenn ich den executeQuery weglasse zeigt er zwar jedes mal den sqlString korrekt an, aber die Änderungen in der Datenbank werden ja nicht ausgeführt.
Weis jemand was ich da machen muss?