1. mapper에 SQL 코드 작성
1. 값 하나 받아오기
태그 내에 if, include, where태그 등이 올 수 있다.
<select id="getOne" parameterType="map" resultType="userDto">
select * from user
where userid = #{userId}
<if test="userPwd != null">
and userpwd = #{userPwd}
</if>
</select>
2. 리스트로 받아오기
List<UserDto>라는 객체가 없기 때문에, 구조를 만들어 사용해야 한다.
UserDto타입의 list의 이름은 userList로 했고, type.setProperty값(column값)으로 객체가 만들어진다.
그러면 select해오는 곳에서는 이 resultMap을 사용해서 데이터들을 차곡차곡 쌓아 Dao로 반환해준다.
<resultMap type="userDto" id="userList">
<result column="username" property="userName"/>
<result column="userid" property="userId"/>
<result column="userpwd" property="userPwd"/>
<result column="email" property="email"/>
</resultMap>
<select id="getAll" resultMap="userList">
select * from user;
</select>
2. DAO에서 호출하기
조회할 때는 DB에 변경이 없으므로 commit은 안 한다.
@Override
public UserDto login(Map<String, String> map) throws SQLException {
SqlSession sqlSession = SqlMapConfig.getSqlSession();
return sqlSession.selectOne(NAMESPACE+"getOne", map);
}
@Override
public List<UserDto> listUser() throws Exception {
SqlSession sqlSession = SqlMapConfig.getSqlSession();
return sqlSession.selectList(NAMESPACE+"getAll");
}
@Override
public UserDto getUser(String userId) throws Exception {
SqlSession sqlSession = SqlMapConfig.getSqlSession();
Map<String, String> map = new HashMap<>();
map.put("userId", userId);
return sqlSession.selectOne(NAMESPACE+"getOne", map);
}
'Programming > Spring' 카테고리의 다른 글
Spring(11) - Spring & Mybatis 실습2 : Transaction처리 (0) | 2022.05.07 |
---|---|
Spring(11) - Spring & Mybatis 실습1 : Spring과 Mybatis 연결하기 (0) | 2022.05.07 |
Spring(10) - Mybatis란? (0) | 2022.05.06 |
Spring(10) - Mybatis 실습 1 : 기본 세팅 (0) | 2022.05.06 |
Spring (7) - Spring MVC 프로젝트 구조 (0) | 2022.04.29 |