JDBC 中的批处理

2024 年 8 月 29 日 | 阅读 2 分钟

我们可以执行一批(一组)查询,而不是执行单个查询。这可以提高性能。这是因为当一次向数据库发送多个 SQL 语句时,通信开销会显著减少,因为不需要频繁地与数据库通信,从而带来更快的性能。

java.sql.Statement 和 java.sql.PreparedStatement 接口提供了用于批处理的方法。

批处理的优点

快速性能

Statement 接口的方法

下面列出了批处理所需的方法

方法描述
void addBatch(String query)CallableStatement、PreparedStatement 和 Statement 接口的 addBatch(String query) 方法用于向批处理添加单个语句。
int[] executeBatch()executeBatch() 方法开始执行所有分组在一起的语句。该方法返回一个整数数组,数组的每个元素表示相应更新语句的更新计数。
boolean DatabaseMetaData.supportsBatchUpdates() throws SQLException如果目标数据库支持批更新处理,则该方法返回 true。
void clearBatch()此方法移除所有通过 addBatch() 方法添加的语句。

JDBC 中批处理的示例

让我们看看 JDBC 中批处理的简单示例。它遵循以下步骤:

  • 加载驱动程序类
  • 创建连接
  • 创建 Statement
  • 将查询添加到批处理
  • 执行批处理
  • 关闭连接

文件名: FetchRecords.java

如果您查看表 user420,已添加了两条记录。

使用 PreparedStatement 进行批处理的示例

文件名: BP.java

输出

enter id
101
enter name
Manoj Kumar
enter salary
10000
Want to add more records y/n
y
enter id
101
enter name
Harish Singh
enter salary
15000
Want to add more records y/n
y
enter id
103
enter name
Rohit Anuragi
enter salary
30000
Want to add more records y/n
y
enter id
104
enter name
Amrit Gautam
enter salary
40000
Want to add more records y/n
n
record successfully saved

它将查询添加到批处理中,直到用户按下 n。最后,它执行批处理。因此,所有添加的查询都将被执行。


下一个主题JDBC RowSet