Legen Sie Wert auf die Datenbank mit jdbc
Ich bin mit MS-Access und Java mit Anbindung von JDBC-ODBC-Treiber. Wie der folgende code, den ich versuche zu erstellen ist eine Registrierung textbox, aber wenn ich die Werte hinzufügen, erhalte ich nur das Ergebnis "null" in die Datenbank. Wie bekomme ich den echten Wert ich einsetzen ? Dank
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:ADB");
Statement statement = con.createStatement();
statement.executeUpdate("insert into Login " + "values ('"+uname+"','"+pwd+"')");
uname = userTextBox.getText();
pwd = passTextBox.getText();
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom Aussehen, Ihrer Anweisung code in Ordnung ist. Das problem ist, dass Sie initialisieren
uname
undpwd
NACHDEM Sie es ausführen.Ich gehe davon aus, dass irgendwo oben Sie initialisiert diese Variablen zu
null
. Also, an der Zeit, die Anweisung ausgeführt wird, die Werte zu legen sindnull
.Mit der Menge der Informationen, die Sie zur Verfügung gestellt, Wenn Sie zeigen Sie Ihre vollständigen code kann ich update meine Antwort entsprechend, ich nehme an, Sie brauchen, um dies zu ändern:
Zu:
Auch deine query ist anfällig für SQL-Injection-Angriffe. Verwenden Sie immer parametrisierte Abfragen ähnlich wie unten:
statement.executeUpdate
.Müssen Sie initialisieren
uname
undpwd
bevor Sie excecute-update:Schalten Sie die Online-Bestellungen von
zu
sonst
uname
undpwd
null (sofern Sie nicht angegeben sind alle Werte, die vor diesem code)Update-Abfragen nicht wieder die eingefügten oder geänderten Wert.
Was Sie tun können, ist, anstatt dass die DB generiert automatisch die ID des neuen Eintrags, generieren Sie sich vor dem einsetzen, dann die Abfrage der DB mit der entsprechenden ID an.
Sollten Sie prüfen, diese stack-overflow-post deckt, dass zu diesem Thema:
Wie man die insert ID, die in JDBC?
Brauchen Sie Nur zu Holen die Ersten Werte & Setzen Sie dann die Abfrage aus 🙂
String uname = userTextBox.getText();
String pwd = passTextBox.getText();