我试图在Java程序中使用MySQLauto_increment
。但我有一个错误:
Sep 09, 2017 7:36:16 PM demosub jButton1ActionPerformed SEVERE: null
java.sql.SQLException: No value specified for parameter 1
这是我的程序:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String url = "jdbc:mysql://localhost:3306/anadha";
String uname1 = "root";
String password = "csrajesh";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, uname1, password);
PreparedStatement pst = con.prepareStatement("INSERT into employee (time, name) VALUES (?,?)", Statement.RETURN_GENERATED_KEYS);
pst.setString(2, nme.getText());
pst.executeUpdate();
} catch (ClassNotFoundException ex) {
Logger.getLogger(demosub.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(demosub.class.getName()).log(Level.SEVERE, null, ex);
}
最佳答案
您忘记绑定第一个参数,因此出现错误。只设置第二个参数的值
pst.setString(2, nme.getText());
你应该有另外一句话,比如:
pst.setString(1, "ValueYouWant");
或者
pst.setTimestamp(1, <function_that_returns_a_timestamp>);
取决于该列的预期值类型。
如果不想自己添加当前时间戳,只需在表中将
time
列的默认值设置为current_timestamp。