<?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"> <mapper namespace="com.haiyoung.hyweb.mapper.RoleMapper"> <resultMap type="com.haiyoung.hyweb.biz.user.Role" id="RoleResult"> <id column="role_id" property="roleId"/> <result column="role_name" property="roleName"/> </resultMap> <select id="roles" resultMap="RoleResult"> select role_id, role_name from role where role_id in ( select role_id from user_role ) </select> <select id="getRolesByIds" parameterType="java.util.List" resultMap="RoleResult"> select role_id, role_name from role where role_id in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </select> </mapper>
role table role_id role_name R100 user R200 test_user R900 admin user_role表 user_id role_id haiyoung R100 haiyoung R900 haiyoung001 R200
@Mapper @Repository public interface RoleMapper { List<Role> roles(); List<Role> getRolesByIds(List<String> list); }
@Service public class UserService { @Autowired private RoleMapper roleMapper; public List<Role> getUsers(){ return roleMapper.roles(); } public List<Role> getUsers(List<String> list){ return roleMapper.getRolesByIds (list); } }
Write two @Test tests
@SpringBootTest @RunWith(SpringRunner.class) public class UserTest { @Autowired private UserService userService; @Test public void rolesTest(){ List<Role> list = userService.getUsers(); list.forEach(user ->{ System.out.println (user.getRoleId () + ":" + user.getRoleName ()); }); } @Test public void rolesTest2(){ List<String> paramsList = new ArrayList<>(); paramsList.add("R900"); paramsList.add("R200"); List<Role> list = userService.getUsers(paramsList); list.forEach(user ->{ System.out.println (user.getRoleId () + ":" + user.getRoleName ()); }); } }
The test results are as follows:
R100:user R900: admin R200:test_user R200:test_user R900: admin