我从休眠项目开始,休眠允许您保存或更新()。我将该项目转换为 JDBC 项目,问题在于保存和更新。我想使用 JDBC 同时保存和更新。所以,我做了一些研究,我遇到了 DUPLICATE KEY UPDATE :
String sql="Insert into tblstudent (firstName,lastName,gender) values (?,?,?)
ON DUPLICATE KEY UPDATE
firstName= VALUES(firstName),
lastName= VALUES(lastName),
gender= VALUES(gender)";
上述代码的问题在于它两次更新了主键,根据 mysql 文档,这是正确的:受影响的行只是一个返回码。1 行表示您已插入,2 表示您已更新,0 表示未发生任何事情。
我引入了 id 并将其增加到 1。现在我正在增加 id 的值而不是 mysql。
String sql="Insert into tblstudent (id,firstName,lastName,gender) values (?,?,?)
ON DUPLICATE KEY UPDATE
id=id+1,
firstName= VALUES(firstName),
lastName= VALUES(lastName),
gender= VALUES(gender)";
上面的代码适用于我的插入和更新。
希望它也适用于你。