mybatis中的智能标签之二
Posted 努力奋斗吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中的智能标签之二相关的知识,希望对你有一定的参考价值。
智能标签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中的智能标签之二的主要内容,如果未能解决你的问题,请参考以下文章
mybatis实战教程(mybatis in action)之二:以接口的方式编程
mybatis实战教程(mybatis in action)之二:以接口的方式编程