我尝试使用JDBC在javadb中保存数据。 它给出了一个错误。
错误发生:指定的值的数量与指定或隐含列的数量不同。
这是我的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();
}
答案 0 :(得分:2)
您没有指定尝试插入的列。然后,SQL假定您可能希望添加为表 Student 定义的每个列。 我假设Student表中的列数多于insert语句中的值。这就是发生错误的地方。
定义明确插入值的列。
insert into Student (Col1,Col2,Col3,Col4,Col5) values (?,?,?,?,?)
如果所有其他列都是可选的或自动生成的,那么它将以这种方式工作。否则,您将收到另一个错误,告诉您哪个列丢失了。