关于JDBC的批量更新的疑问
批量插入我理解为拼sql语句 如:insert value (),(),() ; ,请问JDBC批量更新在数据库中的执行逻辑是什么样的,求解惑。
批量插入我理解为拼sql语句 如:insert value (),(),() ; ,请问JDBC批量更新在数据库中的执行逻辑是什么样的,求解惑。
关注JDBC批量更新允许在一次数据库交互中执行多个更新操作,以提高性能和减少与数据库的通信次数。执行逻辑大致有下面的步骤:
创建一个 Connection 对象:首先,需要使用 JDBC API 建立一个到数据库的连接,并创建一个 Connection 对象。
打开一个事务:为了确保批量更新的原子性和可回滚性,通常会在批量更新之前开启一个事务。通过 connection.setAutoCommit(false) 将自动提交设置为 false 来启用事务。
创建一个 Statement 或 PreparedStatement 对象:这两个对象都用于执行 SQL 语句。如果 SQL 语句是静态的并且不需要动态参数,可以使用 Statement 对象。如果 SQL 语句包含动态参数,可以使用 PreparedStatement 对象,并使用 ? 占位符来表示参数。
添加批量更新的 SQL 语句:使用 addBatch() 方法将 SQL 语句添加到批处理队列中。可以多次调用 addBatch() 方法,以添加要在批量更新中执行的多个 SQL 语句。
执行批量更新:使用 executeBatch() 方法来执行批次中的所有 SQL 语句。此方法将返回一个整数数组,其中包含每个 SQL 语句所影响的行数。
提交事务或回滚事务:根据操作的结果,可以选择提交事务或回滚事务。如果所有更新成功,则使用 connection.commit() 提交事务。如果出现错误或某些更新失败,则使用 connection.rollback() 回滚事务。
关闭连接和相关资源:在批量更新结束后,关闭数据库连接、Statement 或 PreparedStatement 对象以及其他打开的数据库资源。
这是 JDBC 批量更新的基本逻辑。