[英]Adding a new record to a database with java prepared statements
我正在創建一種方法來從接口加載值以在數據庫中創建新記錄。
我嘗試了幾種方法,並不斷得到不同的錯誤。
線程“ main”中的異常com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:鍵“ PRIMARY”的條目“ 939”重復
public boolean newStudent(String studentId, String name, String degreeScheme) throws SQLException
{
// Use SIMPLEDATASOURCE connection
連接conn = SimpleDataSource.getConnection();
線程“ main”中的異常com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL語法有錯誤。 檢查與您的MySQL服務器版本對應的手冊以獲取正確的語法,以在第1行的'student_name ='mark'degree_Scheme ='cis'附近使用
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();
}
}
那里的地方有問題嗎?
Duplicate entry '939' for key 'PRIMARY'
這表明您正在插入一行或更新一行以使其具有表中已經存在的PRIMARY KEY值。 (組成PRIMARY KEY的列的值在每一行上必須是唯一的;任何兩行都不能具有相同的值。)
該查詢:
UPDATE student SET studentId = ?
嘗試將每一行的studentId
列設置為相同的值。
我們猜測studentId
被定義為student
表的PRIMARY KEY,並且該表包含多個行。 我們希望該語句的執行會引發“重復鍵”異常,就像您要報告的異常一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.