我正在我的 net beans java 应用程序中执行插入查询。
public boolean Update(){
String sql="insert into customer(cNic,cName,cAddress,cTp,cEmail,creditLimit,CustomerStatus)"
+ "values('"+cs.getcNic()+"','"+cs.getcName()+"','"+cs.getcAddress()+"','"+cs.getcTp()+"'"
+ ",'"+cs.getcEmail()+"','"+cs.getCreditLimit()+"',0) "
+ "ON DUPLICATE KEY UPDATE cName=VALUES(cName), cAddress=VALUES(cAddress), "
+ "cTp=VALUES(cTp), cEmail=VALUES(cEmail), \n" +
"creditLimit=VALUES(creditLimit),CustomerStatus=0;";
try {
Statement stmt=dbConn.createStatement();
int rslt =stmt.executeUpdate(sql);
if(rslt==1){
return true;
}
else{
return false;
}
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex, "DB_CONNECTION ERROR", JOptionPane.ERROR_MESSAGE);
return false;
}
}
此方法适用于新行。
但是当我添加一行(表中已有主键)时,stmt.executeUpdate(sql)
方法返回 2。但是表中的数据已更新。但我无法检查插入是否成功完成。正常情况下如果执行成功会返回1。有没有办法在net beans中执行这个查询并知道它是否已正确更新。
最佳答案
首先请帮我一个忙,用PreparedStatement替换Statement
executeUpdate() - 返回 SQL 数据操作语言 (DML) 语句的行计数
方法返回 2
表示两行受到影响
但是我无法检查插入是否成功
如果没有插入,它将返回 0 或抛出异常
关于java - 具有 ON DUPLICATE KEY UPDATE 的插入查询的 Statement 类中的executeUpdate(String sql) 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474261/