基于springcloud框架mybatis批量插入数据库(oracle、mysql)
废话不多说,直接上代码
1、dao层代码,经验证若@Param加上后,mybatis配置文件中的collection=“listType”
int saveOpinionHeatInfoBath(@Param("listType") List<SvPSInfo> listType);
2、mybatis配置文件,注 :此处的listType就是和dao层的@Param(“listType”)相对应,其中批量插入insert into xxx values (xxx,xxx),(xxx,xxx) mysql是支持这种语法的,oracle不支持这种语法,oracle批量添加需要select xxx,xxx from dual 。:
<insert id="saveOpinionHeatInfoBath" parameterType="java.util.List">
insert into SV_PS_INFO(
ID,
URL,
URLHASH,
SURLHASH
)
<foreach collection="listType" item="item" separator ="UNION ALL" index="index">
(
SELECT
#{item.id},
#{item.url},
#{item.urlhash},
#{item.surlhash}
FROM DUAL
)
</foreach>
</insert>
3、向mysql中批量添加数据,注意与oracle中的sql写法不一致 inset into *() values () :
<insert id="saveOpinionHeatInfoBath" parameterType="java.util.List">
insert into SV_PS_INFO(
ID,
URL,
URLHASH,
SURLHASH
) values
<foreach collection="listType" item="item" separator ="UNION ALL" index="index">
(
#{item.id},
#{item.url},
#{item.urlhash},
#{item.surlhash}
)
</foreach>
</insert>