我有一个如下的问题...
INSERT INTO MYTABLE (f1,f2,f3,f4) VALUES (1,2,3,4) ON DUPLICATE KEY UPDATE f4=5;
我通过以下方式实现了这一点:
创建连接,编写语句并执行查询,具体如下:
statement.execute(query);
但是现在我需要找出代码是否执行了插入或更新操作?
有人能帮忙吗?
提前致谢...
executeUpdate
返回受影响的行数。如果该数字为0,则必须执行插入操作。我不知道任何特定的内置函数或解决方法。
但在我的情况下,我会用一种简单的方式使其成为可能。
select count(*) as oldcount from MYTABLE;
在这个层次执行您的查询
INSERT INTO MYTABLE (f1,f2,f3,f4) VALUES (1,2,3,4) ON DUPLICATE KEY UPDATE f4=5;
select count(*) as newCount from MYTABLE;
retrive OLDCOUNT and NEW COUNT
if(oldcount != new count)
{
//InsertPerformed
}
else
{
//updateperformed
}
DELETE
操作呢?难道它也会返回0吗?因为在文档中,executeUpdate()
方法返回SQL数据操作语言(DML)语句的行数或者对于不返回任何内容的SQL语句返回0。 - Wayan Wiprayoga