关于MyBatis批量更新和添加,参考我的如下文章即可:
MyBatis的批量更新实例

MyBatis的批量添加实例

另外不管是批量的新增、删除、修改、查询也好,还是单个新增、删除、修改查询也罢。都会用到动态SQL。

关于MyBatis的动态SQL可以参考我的这篇文章,如下:
MyBatis实战之动态SQL

今天这篇文章主要是为了记录,最近用MyBatis-Plus特别多,很多增、删、改、查以及批量相关操作,拿来即用,戊戌时自己编写。特轻松。

但是因为最近的一个需求不得不自己手写批量查询例子(主要涉及联表之类的操作)。

正好以该例子进行讲解,也给我,给大家做个小小参考。

关键XML:

<select id="getStudentSubmitHomeWorkListInfos" resultMap="BaseResultMap">

SELECT s.`solution_id`,s.`problem_id`,s.`user_id`,s.`nick`,s.`result`,p.title
FROM solution AS s left join problem as p ON(s.problem_id = p.problem_id) WHERE
s.`user_id` in
<foreach collection="list" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach> </select>

foreach相关参数解释:

collection配置的users是传递进来的参数名称,它可以是一个数组或者List、Set等集合;

item配置的是循环中当前的元素;

index配置的是当前元素在集合的位置下标;

separator是各个元素的间隔符;

open和colose代表的是以什么符号将元素包裹起来;

关键DAO:

public List<Solution> getStudentSubmitHomeWorkListInfos(List<String> userId);

单元测试:

@Test
public void testCollectionRun() { List<String> userId = new ArrayList<String>();
userId.add("admin");
userId.add("student"); List<Solution> solutionList = solutionDao.getStudentSubmitHomeWorkListInfos(userId);
for (Solution solution : solutionList) { System.out.println("solution:"+solution.getNick()+"||"+solution.getResult()+"||"+solution.getTitle());
} }

顺便说说批量查询的应用场景:
(1)特定的场景获取用户订单列表数;
(2)获取某一个题目许学生提交的结果(以用户id作为查询参数,该用户id非主键);

mybatis之批量查询的更多相关文章

  1. myBatis批量查询操作,xml中使用foreach案例

    使用场景:有一个订单表,实体类为OrderBase.java,订单有个状态为status值可能为"1,2,3,4,5,6",现在需要查询状态为"2,3,4"的订 ...

  2. Sql批量添加,批量查询,批量删除,批量修改。mybatis都有对应标签

    Sql批量添加,批量查询,批量删除,批量修改.mybatis都有对应标签

  3. Mybatis批处理(批量查询,更新,插入)

    mybatis批量查询 注意这里的 in 和   <trim prefix="(" suffix=")"> 以及 in ( )的三种方式的(例1(推 ...

  4. mybatis批量查询引发的血案

    mybatis提供了foreach语法用于所谓的批量查询,使用方式如下: ①.定义接口 /** * 批量获取任务id列表对应的任务名称 * @param taskIdList:任务id列表 * @re ...

  5. mybatis + mysql 批量插入、删除、更新

    mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...

  6. mybatis+mysql批量插入和批量更新、存在及更新

    mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...

  7. mybatis中批量插入的两种方式(高效插入)

    MyBatis简介 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用 ...

  8. Mybatis 实现批量插入和批量删除源码实例

    Mybatis 实现批量插入数据和批量删除数据 学习内容: 准备工作 1.数据库新建表 2.新建 Maven 项目和设置编译版本及添加依赖 3.新建 db.properties 4.新建 mybati ...

  9. mybatis执行批量更新update

    Mybatis的批量插入这里有http://ljhzzyx.blog.163.com/blog/static/38380312201353536375/.目前想批量更新,如果update的值是相同的话 ...

随机推荐

  1. Spring Security 解析(五) —— Spring Security Oauth2 开发

    Spring Security 解析(五) -- Spring Security Oauth2 开发   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决 ...

  2. SAP CO-PA(盈利能力分析)

    为了在这个现代和动态的环境中保持和发展,快速和及时的决策对于做出正确的决策更为重要.组织盈利能力是评估设计组织目标,目标和实现目标的核心参数.在本博客中,我将讨论SAP ERP中包含的工具,以分析组织 ...

  3. js new Date()不带时分秒时,时间变了 问题解决

    //先把电脑系统时间的 时区 调到别的时间一下如 夏威夷 UTC-10:00//在浏览器的Console里运行如下代码,getMonth是从0开始的,所以要+1 var d=new Date(&quo ...

  4. css3做ipone当时的滑动解锁闪亮条

    现在一般的登录 注册 什么  的页面,都是会做个滑动验证.一般都是像IPONE早期那个 滑动开屏的效果 ,这个效果现在可以用CSS3来实现. 主要用到几个属性 background 背景使用渐变属性, ...

  5. android scroller用法及属性

    正文 一.结构 public class Scroller extends Object java.lang.Object android.widget.Scroller 二.概述 这个类封装了滚动操 ...

  6. CDA数据分析实务【第一章:营销决策分析概述】

    一.营销概述 营销是关于企业如何发现.创造和交付价值以满足一定目标市场的需求,同时获取利润的学科.营销学用来辨识未被满足的需求,定义,度量目标市场的规模和利润潜力,找到最合适企业进入的细分市场和适合该 ...

  7. excel 大文件解析原理实现

    问题 目前的excel 不像之前的excel了可以支持的数据量更大,可以支持支持1048576行,16384列. 之前使用poi读取,直接报错,使用excel 事件的方式读取,还有不少的bug,关键是 ...

  8. kali 使用John破解zip压缩包的密码

    kali  使用John破解zip压缩包的密码 准备工具: zip压缩包带密码   1个 kali Linux机器       1个 操作步骤: 首先将压缩包上传至kali机器,然后使用zip2joh ...

  9. html中的数据岛:利用DSO和javascript在html中动态加载和浏览xml数据

    1.DSO也叫做数据源对象,IE 4.0引入了DSO,在IE 5.0对DSO技术进行很大的扩展.以往如果数据是通过SQL语言对数据库进行查询得到的结果,那么就把它们存放在ADO(ActiveX Dat ...

  10. HDU5421 Victor and String 和 APIO2014 回文串

    两道差不多的题,都是回文自动机right集合处理相关. Victor and String Victor loves to play with string. He thinks a string i ...