mybatis中的智能标签之二

摘要:
--智能标记foreach列表数组--˃SELECT*from student0”˃din#{id}˂!
智能标签foreach-Array, 智能标签foreach-List数据组,智能标签 foreach list自定义类型

接口:
/**
* 智能标签foreach-Array
* @param num
* @return
*/
public List<Student> findByForeachArray(int[] num);

/**
* 智能标签foreach-List
* @param list
* @return
*/
public List<Student> findByForeachList(List<Integer> list);


/**
* 智能标签 foreach list自定义类型
* @param list
* @return
*/
public List<Student> findByForeachListStudent(List<Student> list);





xml文件(小配置)
<!--智能标签foreach-array-->
<select id="findByForeachArray" resultType="student">
SELECT *from Student
<where>
<if test="array.length>0">
id in
<foreach collection="array" open="(" close=")" separator="," item="id">
#{id}
</foreach>
</if>
</where>
</select>

<!--智能标签foreach-list数组-->
<select id="findByForeachList" resultType="student">
SELECT *from Student
<where>
<if test="list.size>0">
id in
<foreach collection="list" open="(" close=")" separator="," item="id">
#{id}
</foreach>
</if>
</where>
</select>

<!--智能标签foreach-list自定义类型-->
<select id="findByForeachListStudent" resultType="student">
SELECT *from Student
<where>
<if test="list.size>0">
id in
<foreach collection="list" open="(" close=")" separator="," item="it">
#{it.id}
</foreach>
</if>
</where>
</select>





测试类:

/**
* 智能标签foreach-array
*/
@Test
public void findByForeachArray(){
SqlSession session = MyBatisUtil.getSession();
IStudentDAO mapper = session.getMapper(IStudentDAO.class);
int[] num={2,3,4};
List<Student> list = mapper.findByForeachArray(num);
for (Student item:list){
System.out.println(item.getName());
}
session.commit();
session.close();
}




/**
* 智能标签foreach-list数组
*/
@Test
public void findByForeachList(){
SqlSession session = MyBatisUtil.getSession();
IStudentDAO mapper = session.getMapper(IStudentDAO.class);
List<Integer> list=new ArrayList<Integer>();
list.add(2);
list.add(9);
List<Student> lists = mapper.findByForeachList(list);
for (Student item:lists){
System.out.println(item.getName());
}
session.commit();
session.close();
}




/**
* 智能标签foreach-list自定义类型
*/
@Test
public void findByForeachListStudent(){
SqlSession session = MyBatisUtil.getSession();
IStudentDAO mapper = session.getMapper(IStudentDAO.class);
List<Student> list=new ArrayList<Student>();
Student student=new Student();
student.setId(2);
Student students=new Student();
students.setId(9);
list.add(student);
list.add(students);
List<Student> lists = mapper.findByForeachListStudent(list);
for (Student item:lists){
System.out.println(item.getName());
}
session.commit();
session.close();
}
 

免责声明:文章转载自《mybatis中的智能标签之二》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AJAX全套matplotlib的学习16-animation动画下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringBoot + Shiro实现当前在线人数统计

实现思路 数据库中添加用户是否登录is_login字段,用来记录用户的登录状态,假设1表示在线;0表示未在线,则需要进行控制: 1)当用户登录成功时,设置用户登录状态为1 2)当用户退出登录时,设置用户登录状态为0 3)当session失效时,设置对应的用户的登录状态为0 实现方法 1、更改数据库字段,编写登录状态更新函数 添加字段后,编写状态更新函数 /...

一文梳理Web存储,从cookie,WebStorage到IndexedDB

前言 HTTP是无状态的协议,网络早期最大的问题之一是如何管理状态。服务器无法知道两个请求是否来自同一个浏览器。cookie应运而生,开始出现在各大网站,然而随着前端应用复杂度的提高,Cookie 也渐渐演化为了一个“存储多面手”,承载了 自身仅有的4KB 内存所不能承受的压力。在这样的背景下,web Storage应运而生,专门用于浏览器存储。但web...

Mybatis检查SQL注入

Mybatis 的 Mapper.xml 语句中 parameterType 向SQL语句传参有两种方式:#{ } 和 ${ }。 使用#{ }是来防止SQL注入,使用${ }是用来动态拼接参数。 如何排查出 1. 检查是否有$号 如果你使用的是ide代码编辑器,那么可以通过全局搜索${ , 快速定位到使用${ }拼接SQL的语句,在去找到外部传入参数的入...

CAS—认证原理

  CAS,Central Authentication Service—中央认证服务,是Yale 大学发起的一个企业级的、开源的项目。旨在为Web应用系统提供一种可靠的SSO解决方式。以下简介SSO,重点介绍CAS认证过程。 一、    SSO简单介绍  1.1   概念   SSO英文全称Single Sign On,是眼下比較流行的服务于企业业务整...

spring-session之一:简介、使用及实现原理

一、背景 http session(企业)一直都是我们做集群时需要解决的一个难题,我们知道HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的。而如果我们把web服务器搭建成分布式的集群,然后利用LVS或Nginx做负载均衡,那么来自同一用户的Http请求将有可能被分发到两个不同的web站点中去。那么问题...

抓包工具Fiddler的简单使用

HTTP代理 http代理,就是代理客户机的http访问,主要代理浏览器访问页面 代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求, Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器 Fiddler 安装 官方网站下载安装:https...