我正在使用Java 1.7和JDBC与MySql 1.7版。
我正在使用JDBC执行INSERT IGNORE
我的问题是如何在执行INSERT IGNORE
后获得警告计数或重复计数。
我可以通过运行来获得INSERT
或UPDATE
计数:
Connection.createStatement().executeUpdate("INSERT IGNORE INTO Foo values (1,'Foo')")
有人告诉我从上面的行中减去更新或插入计数的总行数。但这会混淆重复和警告。
那么我有什么方法可以从JDBC中算出来吗?
答案 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);