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工作原理

mybatis查询foreach使用的更多相关文章

  1. MyBatis的foreach查询(List、Array、Map)

    mybatis 中 foreach collection的三种用法 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index ...

  2. mybatis中foreach的用法(转)

    foreach一共有三种类型,分别为List,[](array),Map三种. foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.inf ...

  3. mybatis 查询 xml list参数

    mybatis 查询 xml list参数: <select id="getByIds" resultType="string" parameterTyp ...

  4. mybatis之foreach用法

    在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了 foreach元素的属性主要有item, ...

  5. mybatis的foreach写用法

    一.mybatis查询 public abstract List<Model> findByIds(@Param("ids")List<Integer> i ...

  6. MySQL和mybatis查询相关

    0.mybatis的xml文件头 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapp ...

  7. mybatis map foreach遍历

    mybatis map foreach遍历 转至http://www.cnblogs.com/yg_zhang/p/4314602.html mybatis 遍历map实例 map 数据如下 Map& ...

  8. MyBatis 查询映射自定义枚举

    背景                  MyBatis查询若想映射枚举类型,则需要从 EnumTypeHandler 或者 EnumOrdinalTypeHandler 中选一个来使用         ...

  9. 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的代码没有考虑到并发的情况 ...

随机推荐

  1. keras输出预测值和真实值

    在使用keras搭建神经网络时,有时需要查看一下预测值和真是值的具体数值,然后可以进行一些其他的操作.这几天查阅了很多资料.好像没办法直接access到训练时的数据.所以我们可以通过回调函数,传入新的 ...

  2. react图片自适应组件

    import * as React from 'react'; import 'animate.css/animate.css' import {AutoImg} from "./style ...

  3. 一个漂亮的输出MySql数据库表结构的PHP页面

    经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作. 这 ...

  4. 005-多线程-集合-Map-ConcurrentSkipListMap

    一.概述 ConcurrentSkipListMap是线程安全的有序的哈希表,适用于高并发的场景. ConcurrentSkipListMap和TreeMap,它们虽然都是有序的哈希表.但是,第一,它 ...

  5. HBase里配置SNAPPY压缩以后regionserver启动不了的问题

    配置了HBase的SNAPPY压缩以后,出现regionserver启动不了的问题.分析应该是属性配置错了! 官网上的是:<name>hbase.regionserver.codecs&l ...

  6. MongoDB集群之分片技术应用 —— 学习笔记

    课程链接:https://www.imooc.com/learn/501 一.什么是分片? 分片:将数据进行2拆分,将数据水平的分散到不同的服务器上. 二.为什么要分片? 架构上:读写均衡.去中心化 ...

  7. Django:django后台传递数据到js中

    #奇怪传递字典时前台接收不到???datalist= [{'site': '自强学堂', 'author': '涂伟忠'}]#只要列表能接收# datalist=[[93, 93, 0, 100.01 ...

  8. vue等单页面应用及其优缺点

    优点: Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,核心是一个响应的数据绑定系统.MVVM.数据驱动.组件化.轻量.简洁.高效.快速.模块友好. 缺点: 不支持低版本 ...

  9. UIPath工具来取得邮件里面的添付文件及邮件内容

    下图是得到Outlook邮件附件的示意图 下面的图是对UIPath的属性的设定.最重要的是两个文件夹要保持一致.

  10. WebRoot/WEBINF下的classes文件内无法生成编译文件,classes下没有文件,eclipse无法编译项目

    其实主要问题还是一个eclipse配置的问题. 如下图.将这一项的勾取消掉. 转自:https://blog.csdn.net/qq_36443497/article/details/79684231