场景:
项目业务需要使用循环对数据库进行插入、更新操作,导致运行效率低下。使用批处理可减少数据库操作从而提升运行效率。
运行环境:
MySQL 5.7
jdbc批处理含义:
用于一次性处理多条SQL语句,提升数据库处理效率。
一、批处理方式
- Statement 批处理
- 缺点:(1)Statement不能使用占位符填充参数,可能有sql注入风险;(2)SQL语句没有预编译,当向数据库发送多条语句相同但参数不同的SQL语句时需重复写多条SQL语句。
- 优点:可发送多条不同SQL语句
- PreparedStatement 批处理
- 缺点:(1)只能用在SQL语句相同、参数不同的批处理中。用于在同一个表中批量插入或更新表的数据。
- 优点:发送处理的是经过预编译后的SQL语句,执行效率高。
二、批处理实践
- Statement 批处理(存在SQL注入风险,不推荐使用)
//数据库连接
Connection connection = null;
//预编译的Statement,使用预编译的Statement提高数据库性能
Statement statement = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysq