SSM은 사용자 이름과 사용자 역할에 따라 사용자 목록을 모호하게 조회합니다 - User 객체 및 Map으로 캡슐화

12761 단어

1. User 객체에 캡슐화


1-UserMapper.java
// : ,  -- 
//public List getUserListByUserNameAndUserRole(String userName,Integer userRole);
public List<User> getUserListByUserNameAndUserRole(User user);

2-UserMapper.xml
<!-- : ,  :#{}-->
<select id="getUserListByUserNameAndUserRole"  parameterType="User" resultType="User">
    SELECT *
    FROM smbms_user
    WHERE userName
    LIKE CONCAT('%',#{userName},'%')
    AND userRole=#{userRole}
</select>

3 - 테스트 클래스
@Test
    public void getUserListByUserNameAndUserRoleTest(){
        SqlSession sqlSession = MyBatisUtil.createSqlSession();

/*        String userName=" ";
        Integer userRole=2;*/
        User user = new User();
        user.setUserName(" ");
        user.setUserRole(2);

        List<User> userList = sqlSession.getMapper(UserMapper.class).getUserListByUserNameAndUserRole(user);

        for(User u:userList){
            logger.debug(u.getId()+"\t"+u.getUserName()+"\t"+u.getUserRole());
        }

        // 
        sqlSession.commit();

        MyBatisUtil.closeSqlSession(sqlSession);
    }

2. 맵에 봉인


1-UserMapper.java
// : ,  -- map
public List<User> getUserListByUserNameAndUserRole_map(Map<String,Object> userMap);

2-UserMapper.xml
<!-- : ,  : map;#{ map key }-->
<select id="getUserListByUserNameAndUserRole_map" parameterType="map" resultType="User">
    select * from smbms_user
    where userName like CONCAT('%',#{yiyang},'%') and userRole=#{qianxi}
</select>

3 - 테스트 클래스
@Test
    public  void getUserListByUserNameAndUserRole_mapTest(){
        SqlSession sqlSession = MyBatisUtil.createSqlSession();

        Map<String,Object> userMap=new HashMap<>();

        userMap.put("yiyang"," ");
        userMap.put("qianxi","2");

        List<User> userList = sqlSession.getMapper(UserMapper.class).getUserListByUserNameAndUserRole_map(userMap);

        for(User u:userList){
            logger.debug(u.getId()+"\t"+u.getUserName()+"\t"+u.getUserRole());
        }

        // 
        sqlSession.commit();

        MyBatisUtil.closeSqlSession(sqlSession);
    }

좋은 웹페이지 즐겨찾기