MyBatis 中使用 list作为参数进行传递查询MYSQL,传递的list内容为:将多个元素放在List<Integer> 中List 添加的数据值为 add.(1001);add.(1002);add.(1003)
1、mapper.xml 文件内容
<!-- foreach 操作 将多个元素放在List<Integer> 中List 添加的数据值为 add.(1001);add.(1002);add.(1003)--> <!-- 使用 list作为参数进行传递时,在mapper.xml中,必须用list --> <select id="queryPersonWithList" parameterType="list" resultType="com.mybatis03.bean.Person"> select * from t_person_01 <!-- where 只会处理第一个条件 --> <where> <if test="list !=null and list.size() >0 "> <foreach collection="list" open=" and id in(" close=")" item="personNo" separator=","> #{personNo} </foreach> </if> </where> </select>
2、接口类
/** * @author :jack.zhao * @Describe: 操作mybatis接口 * @date :2021-10-16 22:55 */ public interface PersonMapper { List<Person> queryPersonWithList(List<Integer> intList); }
3、实体类
package com.mybatis03.bean; /** * @author :jack.zhao * @Describe: 实体类 * @date :2021-10-16 22:55 */ public class Person { private int id; private String name; private int age; private Boolean sex; private Address address; public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public Person() { } public Person(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public Person(int id, String name, int age, Boolean sex) { this.id = id; this.name = name; this.age = age; this.sex = sex; } public Boolean getSex() { return sex; } public void setSex(Boolean sex) { this.sex = sex; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", sex=" + sex + ", address=" + address + '}'; } }
4、测试类
/** * @author :jack.zhao * @Describe: 测试类 * @date :2021-10-16 22:55 */ public class test01 { // <!-- foreach 操作 将多个元素放在List<Integer> 中List 添加的数据值为 add.(1001);add.(1002);add.(1003)--> @Test public void queryPersonWithList() throws Exception{ Reader reader = Resources.getResourceAsReader("mybatis-03.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); List<Integer> intList = new ArrayList<>(); intList.add(1001); intList.add(1002); intList.add(1003); // 动态代理 PersonMapper personMapper = session.getMapper(PersonMapper.class); List<Person> personList = personMapper.queryPersonWithList(intList); System.out.println("List作为参数查询结果为:"+personList); session.close(); } }
5、pom文件为
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis01"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <!-- jack.zhao 加载映射文件 --> <mapper resource="com/mybatis03/mapper/personMapper.xml"/> </mappers> </configuration>
6、测试数据
7、测试结果
List作为参数查询结果为:[Person{id=1001, name='zhangsan', age=27, sex=true, address=null}, Person{id=1002, name='chenqi', age=29, sex=true, address=null}, Person{id=1003, name='maliu', age=16, sex=true, address=null}]