我正在创建一个从接口加载vales以在我的数据库中创建新记录的方法。
我尝试了几种方法并且不断出现错误。
线程中的异常" main" com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:重复条目' 939'关键' PRIMARY'
public boolean newStudent(String studentId, String name, String degreeScheme) throws SQLException
{
// Use SIMPLEDATASOURCE connection
Connection conn = SimpleDataSource.getConnection();
线程中的异常" main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在#student; = = degree_Scheme =' cis''在第1行
try {
conn.createStatement();
PreparedStatement stat = conn.prepareStatement( "UPDATE student SET studentId = ?");
stat.setString(1,studentId); // Use parameter
stat.executeUpdate(); // Execute prepared stat
return stat.executeUpdate() == 1 ;
}
finally
{
// Close the connection
conn.close();
}
}
答案 0 :(得分:1)
那里有什么问题吗?
Duplicate entry '939' for key 'PRIMARY'
这表示您要么插入行,要么更新行以具有表中已存在的PRIMARY KEY值。 (构成PRIMARY KEY 的列的值必须在每一行上都是唯一的;没有两行可以具有相同的值。)
此查询:
UPDATE student SET studentId = ?
将尝试将studentId
列设置为每个行上的相同值。
我们猜测studentId
被定义为student
表的PRIMARY KEY,并且该表包含多行。我们期望执行此语句会抛出“重复键”异常,就像您要报告的那样。