mybatis查询foreach使用
1.mybatis传入map参数,map中包含list:
List<FukaModel> fukaModels = price.getSchemaPrice().getFukaList();
Map<String, Object> objectMap = new HashMap<>();
objectMap.put("schemaId", schemaId);
objectMap.put("list", fukaModels);
sqlSession.insert("cn.jj.mall.service.store.insertFukaData",objectMap);
<select id="insertFukaData" parameterType="map" >
<foreach collection="list" item="item" index="index" open="" separator=";" close="">
INSERT INTO jj_fokas_deduct (price_schema_id,min_num, max_num, user_grade)
VALUES (#{schemaId},0,#{item.num},#{item.userGrade})
</foreach>
</select>
2.
List<JjActivityRecommendSku> activityRecommendSkuList = new ArrayList<>();
sqlSession.insert("cn.jj.mall.service.insertActivityRecommendSkuList", activityRecommendSkuList);
<insert id="insertActivityRecommendSkuList" parameterType="cn.jj.mall.model.JjActivityRecommendSku" >
insert into jj_shop.jj_activity_recommend_sku (rec_sku_id, activity_id, sku_id,
sku_sort_order)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.recSkuId,jdbcType=INTEGER}, #{item.activityId,jdbcType=INTEGER}, #{item.skuId,jdbcType=VARCHAR},
#{item.skuSortOrder,jdbcType=INTEGER})
</foreach>
</insert>
3.
<update id="unShelveGoodsSku" parameterType="java.util.List">
update jj_shop.jj_goods_sku set status = 5 where status = 4 and sku_id in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</update>
4.
List<String> skuIds = s.selectList(statement,param);
Map<String, Object> map = new HashMap<>();
map.put("storeId",storeId);
map.put("devType",devType);
map.put("list",skuIds);
WHERE SkuId In
<foreach item="sku_id" collection="list" index="index" open="(" separator="," close=")">
#{sku_id}
</foreach>
5.lambda表达式
currencyDataListTemp.stream().collect(Collectors.groupingBy(o-> new CurrencyData(o.getCurrencyDtID(),o.getCurrencyAtID(),o.getCurrencyOriID(),o.getCurrencyName()),Collectors.summingInt(o->o.getReturnAmount()))).forEach((k,v)->{
k.setReturnAmount(v);
currencyDataList.add(k);
});
重写CurrencyData的hash和equals方法:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CurrencyData currencyData = (CurrencyData) o;
return Objects.equals(currencyDtID, currencyData.currencyDtID) &&
Objects.equals(currencyAtID, currencyData.currencyAtID) &&
Objects.equals(currencyOriID, currencyData.currencyOriID) &&
Objects.equals(currencyName, currencyData.currencyName) &&
Objects.equals(returnAmount, currencyData.returnAmount);
}
@Override
public int hashCode() {
return Objects.hash(currencyDtID, currencyAtID, currencyOriID,currencyName);
}
6.
public static <T>List<T> checkListRepeat(List<T> list) {
return list.stream()
.collect(Collectors.toMap(k -> k, v -> 1, (a, b) -> a + b))
.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
}
7.
List<Test> list = new ArrayList<>();
// list.add(new Test("一年级二班", "小明"));
list.add(new Test("一年级二班啊", "小芳"));
list.add(new Test("一年级二班", "小华"));
list.add(new Test("一年级三班啊", "翠花"));
list.add(new Test("一年级三班", "香兰"));
// 集合中对象属性转map
Map<String, String> map = list.stream().collect(Collectors.toMap(Test :: getClassName, Test :: getStudentName));
8.
double sumRate = lotteryProbList.stream().mapToDouble(Double::doubleValue).sum();
9.
Map<String, List<CommodityInfo>> listMap = commodityInfoList.stream().collect(Collectors.groupingBy(model -> model.getCommodityId()));
mybatis查询foreach使用的更多相关文章
- MyBatis的foreach查询(List、Array、Map)
mybatis 中 foreach collection的三种用法 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index ...
- mybatis中foreach的用法(转)
foreach一共有三种类型,分别为List,[](array),Map三种. foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.inf ...
- mybatis 查询 xml list参数
mybatis 查询 xml list参数: <select id="getByIds" resultType="string" parameterTyp ...
- mybatis之foreach用法
在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了 foreach元素的属性主要有item, ...
- mybatis的foreach写用法
一.mybatis查询 public abstract List<Model> findByIds(@Param("ids")List<Integer> i ...
- MySQL和mybatis查询相关
0.mybatis的xml文件头 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapp ...
- mybatis map foreach遍历
mybatis map foreach遍历 转至http://www.cnblogs.com/yg_zhang/p/4314602.html mybatis 遍历map实例 map 数据如下 Map& ...
- MyBatis 查询映射自定义枚举
背景 MyBatis查询若想映射枚举类型,则需要从 EnumTypeHandler 或者 EnumOrdinalTypeHandler 中选一个来使用 ...
- mybatis查询异常-Error querying database. Cause: java.lang.ClassCastException: org.apache.ibatis.executor.ExecutionPlaceholder cannot be cast to java.util.List
背景,mybatis查询的时候直接取的sqlsession,没有包装成SqlSessionTemplate,没有走spring提供的代理. 然后我写的获取sqlsession的代码没有考虑到并发的情况 ...
随机推荐
- vue + elementui form resetFields方法 无法重置表单
this.$refs['form'].resetFields(); 方法无法重置.1 el-form 组件 没有添加 ref 属性 <el-form ref="form" : ...
- 扯扯python的多线程的同步锁 Lock RLock Semaphore Event Condition
我想大家都知道python的gil限制,记得刚玩python那会,知道了有pypy和Cpython这样的解释器,当时听说是很猛,也就意味肯定是突破了gil的限制,最后经过多方面测试才知道,还是那德行… ...
- 【转】Selenium-WebDriverApi接口详解
浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() 获取标签元素 # 通过ID定位目标元素 driver.find ...
- 123457123456#0#-----com.threeapp.renZheDadishu02-----忍者版打地鼠
com.threeapp.renZheDadishu02-----忍者版打地鼠
- iOS-app清除缓存
一直寻寻觅觅找app的清除缓存的方法,发现:并没有什么固定的方法,你既然有做对应的缓存机制,这个机制就应该有清除缓存的方法.例如如果你使用某个第三方的图片库,这个库有缓存机制,那么它就应该提供对应的清 ...
- 金仓Kingbase数据库网页数据维护分析工具
金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...
- 最新 思贝克java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.思贝克等10家互联网公司的校招Offer,因为某些自身原因最终选择了思贝克.6.7月主要是做系统复习.项目复盘.LeetCo ...
- 最新 竞网java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.竞网等10家互联网公司的校招Offer,因为某些自身原因最终选择了竞网.6.7月主要是做系统复习.项目复盘.LeetCode ...
- [转帖]超详细的Oracle数据库在不同损坏级别的恢复总结
超详细的Oracle数据库在不同损坏级别的恢复总结 原创 波波说运维 2019-07-20 00:02:00 概述 在 DBA 的日常工作中不可避免存在着数据库的损坏,今天主要介绍 Oracle 数据 ...
- [转帖]linux下的find文件查找命令与grep文件内容查找命令
linux下的find文件查找命令与grep文件内容查找命令 https://www.cnblogs.com/shileima/p/8431393.html 在使用linux时,经常需要进行文件查找. ...