与数据库的交互操作永远是一个框架的评判标准,什么项目都离不开数据库,这次我们来看看ibatis该怎么批量实现insert吧。
在ibatis框架中使用回调接口就可以实现数据的批量操作,减少对数据库的访问次数,提高性能。
例:
/** * ibatis批量插入数据 * @param recordList */ public void insertRecordByList(final List < Record > recordList) { this.getSqlMapClientTemplate() .execute(new SqlMapClientCallback() { public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { executor.startBatch(); // 每次提交最大条数 final int batchSize = 200; int count = 0; for (Record record: recordList) { executor.insert("Record.insertRecord", record); // 每200条数据提交一次 if (++count % batchSize == 0) { executor.executeBatch(); } } // 提交剩余的数据 executor.executeBatch(); return null; } }); }
对应配置
<sqlMap namespace="Record"> <typeAlias alias="record" type="me.gogogogo.domain.Record" /> <insert id="insertRecord" parameterClass="record"> insert into record (id, record, insetDate) values (sequence_record.nextval, #record#, sysdate) </insert> </sqlMap>
以上就是本篇文章的所有内容,更多有关java架构师详情,敬请关注奇Q工具网了解具体。
推荐阅读: