获取使用PreparedStatement更新的行数

发布于 2024-09-19 04:41:41 字数 400 浏览 5 评论 0原文

如何获取使用PreparedStatement更新了多少行?

.getUpdateCount() 返回 0。

executeUpdate 出现错误:
批处理期间发生错误:必须执行或清除批处理

我的代码:

updTrans = dataSource.getConnection().prepareStatement("update...");
updTrans.setInt(1, Integer.valueOf(transaksjonstatusid));
...
updTrans.addBatch();
upd = updTrans.executeUpdate();

How to get how many rows updated with PreparedStatement?

.getUpdateCount() returns 0.

For executeUpdate got error:
error occurred during batching: batch must be either executed or cleared

my code:

updTrans = dataSource.getConnection().prepareStatement("update...");
updTrans.setInt(1, Integer.valueOf(transaksjonstatusid));
...
updTrans.addBatch();
upd = updTrans.executeUpdate();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

长亭外,古道边 2024-09-26 04:41:41

您应该使用 使用批处理时,PreparedStatement#executeBatch()

...
updTrans.addBatch();
upd = updTrans.executeBatch();

它返回一个 int[] ,其中包含每个批次的更新计数。

You should be using PreparedStatement#executeBatch() when using batches.

...
updTrans.addBatch();
upd = updTrans.executeBatch();

It returns an int[] containing update counts of each batch.

清泪尽 2024-09-26 04:41:41

您是否尝试使用:

int n = preparedStatement.executeUpdate();

在这里您可以找到一些有关如何使用 的说明准备好的语句

Did you try to use:

int n = preparedStatement.executeUpdate();

Here you can find some explanations on how to use a PreparedStatement.

你在看孤独的风景 2024-09-26 04:41:41

请参阅 Javadoc

公共 int 执行更新()
抛出 SQLException

执行此PreparedStatement对象中的SQL语句,该语句必须
是 SQL INSERT、UPDATE 或 DELETE
陈述;或 SQL 语句
不返回任何内容,例如 DDL
声明。

返回:
(1) INSERT、UPDATE 或 DELETE 语句的行计数
或 (2) 0 表示不返回任何内容的 SQL 语句

抛出:
SQLException - 如果发生数据库访问错误或 SQL
语句返回一个 ResultSet 对象

See The Javadoc

public int executeUpdate()
throws SQLException

Executes the SQL statement in this PreparedStatement object, which must
be an SQL INSERT, UPDATE or DELETE
statement; or an SQL statement that
returns nothing, such as a DDL
statement.

Returns:
either (1) the row count for INSERT, UPDATE, or DELETE statements
or (2) 0 for SQL statements that return nothing

Throws:
SQLException - if a database access error occurs or the SQL
statement returns a ResultSet object

空城旧梦 2024-09-26 04:41:41

getUpdateCount 旨在与 execute(String sql) 方法一起使用。你可能正在这样做:

String sql = "UPDATE some_table SET somecolumn = ? WHERE someId = ?";
PreparedStatement ps = connection.prepare(sql);
ps.setString(1, val);
ps.setInt(2, id);
ps.executeUpdate();

在这种情况下你应该简单地做

int rowsUpdated = ps.executeUpdate();

getUpdateCount is meant to be used with the execute(String sql) method. You are probably doing this:

String sql = "UPDATE some_table SET somecolumn = ? WHERE someId = ?";
PreparedStatement ps = connection.prepare(sql);
ps.setString(1, val);
ps.setInt(2, id);
ps.executeUpdate();

In that case you should simply do

int rowsUpdated = ps.executeUpdate();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文