MyBatis가 제공하는 SqlSession클래스에서는 CRUD를 위한 메소드들을 제공한다.
그중 select와 관련한 메소드는 다음과같다
궁금함이 생긴 예시는 다음과같다
<select id="listPage" resultType="ReplyVO">
select *
from tbl_reply
where bno=#{bno}
order by rno desc
limit #{cri.pageStart}, #{cri.perPageNum}
</select>
<select id="count" resultType="int">
select count(bno) from tbl_reply where bno=#{bno}
</select>
@Override
public List<ReplyVO> listPage(Integer bno, Criteria cri) throws Exception {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("bno",bno);
paramMap.put("cri",cri);
return session.selectList(namespace+".listPage",paramMap);
}
@Override
public int count(Integer bno) throws Exception {
return session.selectOne(namespace+".count",bno);
}
즉 listPage()의 경우 select문을 실행하면서 레코드를 List로 반환하면서 조건, 즉 paramMap을 같이 전달한다.
count()의 경우 select를 실행하면서 레코드를 지정한 타입으로 반환하고, bno를 같이 전달한다