我有一些Java代码,可使用SQL查询来插入或更新(如果已存在)。
SQL语句:
PreparedStatement cl = c.prepareStatement("INSERT INTO client VALUES (?, ?, ?, ?, ?, ?) " +
"ON DUPLICATE KEY UPDATE sex = VALUES(sex), zip = " +
"VALUES(zip), gem = VALUES(gem), agb = VALUES(agb), dob = VALUES(dob)");
Java代码:
private void clientInsert(PreparedStatement cl, String bsn, String sex, String zip, String dob, String gem, String agb) throws SQLException {
cl.setString(1, bsn);
cl.setString(2, sex);
cl.setString(3, zip);
cl.setString(4, dob);
cl.setString(5, gem);
cl.setString(6, agb);
int result = cl.executeUpdate();
System.out.println("return: " + result);
if (result == 1) System.out.println("New client inserted: " + bsn);
else if (result == 2) System.out.println("Existing client updated: " + bsn);
else if (result == 0) System.out.println("Existing client, not updated (duplicate values)");
else System.out.println("query failed");
}
它会插入优良(返回1),并且当使用相同的“ bsn”(id)但以不同的zip再次运行时,它将更新优良(返回2)。但是,当我使用完全相同的数据再次运行它而没有更改时,它再次返回1,因此我无法在控制台中知道客户端是否已经存在而没有更改。
如何检查?