执行批量操作时,做了个比较Mybatis和JDBC执行时间的记录,JDBC还是强大太多了!
jdbc.properties文件
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&rewriteBatchedStatements=true
jdbc.driverName=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=123
其中,数据库连接中的参数rewriteBatchedStatements
相当重要,如果不开启rewriteBatchedStatements=true
,那么jdbc会把批量插入当做一行行的单条处理,也即没有达到批量插入的效果。
JDBC原生批处理
@Resource(name="dataSource")
private DataSource dataSource;
/* JDBC 的批量操作 */
@Test
public void insertBatch() {
Connection connection=dataSource.getConnection();
connection.setAutoCommit(false);
String sql="insert into notify_record(aa,bb, cc, dd, ee, ff, gg, hh, ii) " +
" values(?,?,?,?,?,?,?,?,?) ";
PreparedStatement statement=connection.prepareStatement(sql);
for (int i