使用Mybatis批量插入Oracle数据库
dao类定义:
public interface AfrsParamsCatalogEntityDao {
/**
*
* @param catalog 目录编号
* @param list 指标编号
* @return
*/
void batchSave(String catalog, Set<String> list);
}
mapper.xml定义
<insert id="batchSave" >
insert all
<foreach collection="paramSet" item="paramno" index="index">
into AFRS_PARAMS_CATALOG(paramno, catalogNo)
values (#{paramno}, #{catalogNo})
</foreach>
select 1 from dual
</insert>
补充:上面写法插入性能较差,以下方式目前测试千条记录插入毫秒级
<insert id="batchSave" >
insert into AFRS_PARAMS_CATALOG(paramno, catalogNo)
<foreach collection="paramSet" item="paramno" index="index" separator="union all">
select #{paramno}, #{catalogNo} from dual
</foreach>
</insert>

本文介绍使用Mybatis实现批量插入Oracle数据库的方法。提供两种mapper.xml配置示例:一种通过循环插入,另一种采用UNION ALL提高效率,后者经测试在千条记录下可达毫秒级速度。
1万+

被折叠的 条评论
为什么被折叠?



