mybatis學習日記-動態sql-foreach
阿新 • • 發佈:2022-03-03
dao層:
package com.fu.dao; import com.fu.pojo.User; import java.util.List; import java.util.Map; public interface UserMapper { //查詢id為:1,4,9的使用者 public List<User> getUserList(Map map); }
pojo層:
package com.fu.pojo; import org.apache.ibatis.type.Alias; @Alias("user") public classUser { private int id; private String name; private String pwd; public User(int id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } public User() { } public int getId() { return id; } public voidsetId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Overridepublic String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; } }
dao層對應的xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--在這裡的foreach標籤中:collection的值就相當於#{}裡面的這個值,在測試類中使用萬能map中對應的String物件--> <mapper namespace="com.fu.dao.UserMapper"> <select id="getUserList" resultType="user"> select * from user <where> <foreach collection="list" item="item" open="(" separator="or" close=")"> id=#{item} </foreach> </where> </select> </mapper>
測試類:
package com.fu.dao; import com.fu.pojo.User; import com.fu.utils.MybatisUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class MyTest { @Test public void getUserList(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); HashMap<String, Object> map = new HashMap<>(); List<Integer> list = new ArrayList<>(); list.add(1); list.add(4); list.add(9); map.put("list",list); List<User> userList = mapper.getUserList(map); for (User user : userList) { System.out.println(user); } sqlSession.close(); } }
測試結果:
<== Total: 3 User{id=1, name='張三', pwd='123456'} User{id=4, name='王達', pwd='123456'} User{id=9, name='舒凡', pwd='147222'}