使用JDBC执行INSERT IGNORE后获取警告计数

时间:2017-04-04 14:08:27

标签: java mysql jdbc

我正在使用Java 1.7和JDBC与MySql 1.7版。

我正在使用JDBC执行INSERT IGNORE我的问题是如何在执行INSERT IGNORE后获得警告计数或重复计数。

我可以通过运行来获得INSERTUPDATE计数:

Connection.createStatement().executeUpdate("INSERT IGNORE INTO Foo values (1,'Foo')")

有人告诉我从上面的行中减去更新或插入计数的总行数。但这会混淆重复和警告。

那么我有什么方法可以从JDBC中算出来吗?

1 个答案:

答案 0 :(得分:0)

为什么不创建执行此查询并返回所需内容的过程

<强> SQL

CREATE PROCEDURE insert_check (OUT param1 TEXT, f1 IN int, f2 IN VARCHAR)
BEGIN
   INSERT IGNORE INTO Foo values (f1, f2);
   -- ...return your count or your error
END

<强> CODE

String query = "{call insert_check(?, ?)}"; 
CallableStatement statement = connection.prepareCall(sql);  
statement.registerOutParameter(1, java.sql.Types.VARCHAR);
statement.setInt(2, 1);  
statement.setString(3, "Foo");  

statement.executeUpdate();
String countError = callableStatement.getString(1);