Java 如何使用MySQL自动增量列?

Java 如何使用MySQL自动增量列?,java,mysql,sql,jdbc,sqlexception,Java,Mysql,Sql,Jdbc,Sqlexception,我试图在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

我试图在Java程序中使用MySQL
auto_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,);
取决于该列所需的值类型


如果您不想自己添加当前时间戳,只需将表中的
time
列默认值设置为current\u timestamp

让它在命令行应用程序中工作。首先,它的工作方式应该与“在java swing程序中”几乎完全相同。哪个列是自动递增、时间、名称或其他?请提供您试图插入的表的结构。它最容易理解为CREATE语句,但要确保我们能够分辨出哪一列是自动递增列以及每一列的类型| int(11)| NO | PRI | NULL | auto | u increment | name | varchar(45)| NO | | NULL |+------+------+------+------+------+------+-----------+-----------+------+-----------+-----------+2行(0.00秒)@rajesdeva问题可能是表结构与代码所做的假设之间的脱节。我强烈建议使用表的SQL更新您的问题(CREATE语句可以很好地工作)。如果您不确定如何获取SQL,请尽可能准确地描述表和列。
pst.setTimestamp(1, <function_that_returns_a_timestamp>);