概述
mybatis批量入库,如果参数是List,没什么好说,但有时参数是一个list+pojo,要批量插入list的值,同时还要用到pojo中某些属性,以下为几种写法:
- 参数是数组 String[] 和 String
//java
Map<String, Object> params = new HashMap<>();
params.put("userId", userId);
params.put("creator", creator);
params.put("roles", ids); // ids为String[]
roleMapper.saveRolesByUserId(params);
// mapper
void saveRolesByUserId(Map<String, Object> params);
// xml
<insert id="saveRolesByUserId" parameterType="map">
insert ignore into user_role
<trim prefix="(" suffix=")" suffixOverrides=",">
user_id, role_id, add_user, add_time
</trim>
<trim prefix="values" suffixOverrides=",">
<foreach collection="roles" item="roleid" index="index" separator=",">
(#{userId},#{roleid},#{creator},now())
</foreach>
</trim>
</insert>
- 参数是List和 String
// scala
val map1 = new util.HashMap[String,Object]()
map1.put("brand_type",brand_name)
map1.put("list",sonList.asJava)
mapper.saveRecordByBrand(map1)
// mapper
void saveRecordByBrand(Map<String, Object> params);
// xml
<insert id="saveRecordByBrand" parameterType="map">
insert into third_dealer (id, dealer_name, phone,
address, zbx, zby,
brand_type, dealer_id,city)
VALUES
<foreach collection="list" item="item" index="index" separator="," >
(#{item.id,jdbcType=INTEGER}, #{item.dealer_name,jdbcType=VARCHAR}, #{item.phone,jdbcType=VARCHAR},
#{item.address,jdbcType=VARCHAR}, #{item.zbx,jdbcType=VARCHAR}, #{item.zby,jdbcType=VARCHAR},
#{brand_type,jdbcType=VARCHAR}, #{item.dealer_id,jdbcType=INTEGER},#{item.city,jdbcType=VARCHAR})
</foreach>
</insert>
- 参数是List和 pojo / 或 List 和 Map
// java
Map<String, Object> params = new HashMap<>();
params.put("list", list);
params.put("pojo", b); // b为pojo对象 或 map对象
m1.saveRecordByBrandPojo(params);
// mapper
void saveRecordByBrandPojo(Map<String, Object> params);
// xml
<insert id="saveRecordByBrandPojo" parameterType="map">
insert into third_dealer (id, dealer_name, phone,
address, zbx, zby,
brand_type, dealer_id,city)
VALUES
<foreach collection="list" item="item" index="index" separator="," >
(#{item.id,jdbcType=INTEGER}, #{item.dealer_name,jdbcType=VARCHAR}, #{item.phone,jdbcType=VARCHAR},
#{item.address,jdbcType=VARCHAR}, #{item.zbx,jdbcType=VARCHAR}, #{item.zby,jdbcType=VARCHAR},
#{pojo.brand_type,jdbcType=VARCHAR}, #{item.dealer_id,jdbcType=INTEGER},#{item.city,jdbcType=VARCHAR})
</foreach>
</insert>
最后
以上就是淡然季节为你收集整理的mybatis 批量入库 参数list+pojo的全部内容,希望文章能够帮你解决mybatis 批量入库 参数list+pojo所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复