分配的值数与指定或隐含的列数不同

The number of values assigned is not the same as the number of specified or implied columns

我尝试使用 JDBC 在 java 数据库中保存数据。 报错了。

Error Occured : The number of values assigned is not the same as the number of specified or implied columns.

这是我的 JDBC 代码:

try {
    //loading driver 

    Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

    //creating connection with the database 
    Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/sample", "app", "app");

    PreparedStatement ps = con.prepareStatement("insert into Student values(?,?,?,?,?)");

    ps.setString(1, Title);
    ps.setString(2, Artist);
    ps.setString(3, Country);
    ps.setString(4, Price);
    ps.setString(5, Year);
    int i = ps.executeUpdate();
    if (i > 0) {
        out.println("You are sucessfully register");
    }
} catch (Exception se) {
    out.println("Error Occured : \n" + se.getLocalizedMessage());
    se.printStackTrace();
}

您没有指定您尝试插入的列。 SQL 然后假设您可能想要添加为 table Student 定义的每一列。 我假设 Student table 中的列数比插入语句中的值多。这就是错误发生的地方。

明确定义要为其插入值的列。

insert into Student (Col1,Col2,Col3,Col4,Col5) values (?,?,?,?,?)

如果所有其他列都是可选的或自动生成的,它将以这种方式工作。否则你会收到另一个错误,告诉你缺少哪一列。