Java Datenbakeintrag erstellen

Hallo Leute,

ich bin zur Zeit dabei mich in dieses Theme einzuarbeiten, nur stehe ich grad vor einem problem und weiß mir nicht so recht zu helfen.

Und zwar will ich in Java eine Methode schreiben, die ein paar Strings, Zahlen usw übergeben bekommt und diese dann in die DB schreibt.

Nun ich kann ja ganz einfach das so machen:
Statement stmt = con.createStatement();
int rs = stmt.executeUpdate("INSERT INTO Highscore " +
„( Name, blabla ) VALUES ( ‚Sarah‘, 1917 );“);

Aber dann habe ich das Problem das ich so ja nicht die übergebenen Attribute verwenden kann.

Also wäre echt hilfreich wenn mir mal jemand verrät wie das geht!

mfg Michael

Salü Michael

Keine Ahnung ob ich Dich richtig verstehe, falls ja, funzt es so:

private void insert(String name, int year) {
 StringBuffer sqlBuffer = new StringBuffer("INSERT INTO Highscore ( Name, blabla ) VALUES ('");
 sqlBuffer.append(name);
 sqlBuffer.append("',");
 sqlBuffer.append(year);
 sqlBuffer.append(");");
 Statement stmt = con.createStatement();
 //Frage: gibt es kein executeInsert? und try-catch?
 stmt.executeUpdate(sqlBuffer.toString());
}

HTH und Gruss
Andrea

Hallo,

doch try/ catch gibts da wo die Methode aufgerufen wird.
Soweit ich weiß gibt es kein executeInsert.

Also danke erstmal für diese Lösung.
Hätte man ja drauf kommen können, ist ja einfacher als ich dachte :o)

In der Console steht jetzt auch:

*Connection.createStatement

szSqlStr=INSERT INTO Highscore ( Name, Versuche ) VALUES (‚Manu‘,12);
Number of result columns (SQLNumResultCols), hStmt=185147256
value=0
*Statement.getUpdateCount
Number of result columns (SQLNumResultCols), hStmt=185147256
value=0
Number of affected rows (SQLRowCount), hStmt=185147256
value=1

Soweit so gut, müsste ja gehen nur leider kommt kein neuer Eintrag in der DB an, obwohl keine Exception ausgelöst wird.

Aber versteh das wer will, wenn jemand weiß woran es liegen kann wär ich dankbar. Ansonsten klemm ich mich heute Abend nach der FH dran.

Hier nochmal die gesamte Methode, allerdings zum Test nur mit den 2 Parametern aber spielt ja eigentlich keine Rolle.

public void setzteEintrag(String name, int versuche) throws SQLException{
System.out.println("\n\n");
StringBuffer sqlBuffer = new StringBuffer(„INSERT INTO Highscore ( Name, Versuche ) VALUES (’“);
sqlBuffer.append(name);
sqlBuffer.append("’,");
sqlBuffer.append(versuche);
sqlBuffer.append(");");
Statement stmt = con.createStatement();
stmt.executeUpdate(sqlBuffer.toString());
}

mfg Michael

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Salü nochmals

Also ich hab jetzt nachgeschaut, das executeUpdate ist auch für INSERTs verantwortlich (war nur wegen dem Naming verwirrt). Seltsam, dass es keine Exception wirft und trotzdem keinen Eintrag generiert. Wie sieht denn die Tabelle aus? Was passiert beim Debuggen? Fängst Du irgendwo weiter oben die allgemeine Exception und loggst nichts raus?

Grüsse
Andrea

Hallo,

koennte eventuell auch daran liegen, wenn es sonst augenscheinlich
keine Fehlermeldungen gibt (hast du irgendwo ein „silent“ catch?).
Dann musst du manuell „committen“ (connection.commit()).

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Con…
(get/setAutoCommit)

Gruss, Patrick