我的插入
给我带来了问题。
我非常确定 Jtextfield
是问题所在。
如果有人能在正确的方向上插入我,我将不胜感激。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
Connection conn = DriverManager.getConnection(url, "system", "oracle");
conn.setAutoCommit(false);
String query1 = "INSERT INTO WIN(NAME) VALUES('"+nameTextField.getSelectedText()+"')";
Statement stm = conn.createStatement();
stm.execute(query1);
JOptionPane.showMessageDialog(null, "Record Added Succesfully.", "Record Added",
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
System.out.println(e);
}
}
最佳答案
nameTextField.getSelectedText()
我猜应该是
nameTextField.getText()
此外,对 SQL 使用 PreparedStatement
。您将不太可能出现 SQL 语法错误。查看:geting data from multiple table when selecting a row then clicking a button一个基本的例子。
Im pretty sure the Jtextfield is the problem.
好吧,学习如何进行一些基本的调试而不是猜测。
String query1 = "INSERT INTO WIN(NAME) VALUES('"+nameTextField.getSelectedText()+"')";
上面的代码可以写成:
String name = textField.getSelectedText();
// now you can verify the value of the name
System.out.println(name);
String query1 = "INSERT INTO WIN(NAME) VALUES('"+ name +"')";
// verify SQL syntax
System.out.println( query1);
当然,我的第一个建议是使用PreparedStatement更容易,但是要了解如何在调试时显示变量的值。
关于java - 使用文本字段插入数据很困难(jdbc swing),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42465014/