SpringBoot
게시판 프로젝트 - CRUD 구현 ③ 영속 영역 CRUD 구현, READ(SELET)처리
Helmi
2023. 4. 29. 11:09
insert된 데이터 조회 작업은 PK이용해 처리 - BoardMapper의 파라미터 역시 BoardVO 클래스의 bno 타입 정보 이용해 처리
com.board.mapper.BoardMapper 인터페이스 일부
package com.board.mapper;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardMapper {
public List<BoardVO> getList();
public void insert(BoardVO board);
public void insertSelectKey(BoardVO board);
public BoardVO read(Long bno);
}
BoardMapper.xml에 추가되는 <select>
<select id="read" resultType="com.board.domain.BoardVO">
select * from tbl_board where bno = #{bno}
</select>
MyBatis는 Mapper 인터페이스 리턴 타입 맞게 select 결과 처리
tbl_board의 모든 칼럼은 BoardVO의 'bno, title, content, writer, regdate, updateDate' 속성값으로 처리 됨.
> MyBatis는 bno라는 칼럼 존재하면 인스턴스의 'setBno()' 호출. MyBatis의 모든 파라미터와 리턴 타입의 처리는 get 파라미터명(), set 칼럼명() 규칙으로 호출
#{속성}이 1개만 존재하는 경우에는 별도의 get 파라미터명() 사용 않고 처리 됨.
현 테이블에 존재하는 데이터의 bno 칼럼 값 이용해 테스트 코드 통해 확인
BoardMapperTests.java 일부
@Test
public void testRead() {
//존재하는 게시물 번호로 테스트
BoardVO board = mapper.read(5L);
log.info(board);
}
INFO : jdbc.resultset - 1. ResultSet.next() returned false
INFO : jdbc.resultset - 1. ResultSet.close() returned void
INFO : jdbc.audit - 1. Connection.getMetaData() returned oracle.jdbc.driver.OracleDatabaseMetaData@11b377c5
INFO : jdbc.audit - 1. PreparedStatement.close() returned
INFO : jdbc.audit - 1. Connection.clearWarnings() returned
INFO : com.board.controller.BoardMapperTests - BoardVO(bno=5, title=수정된 제목,
content=수정된 내용, Writer=user00, regdate=Wed Apr 26 13:55:56 KST 2023,
updatedate=Fri Apr 28 16:01:05 KST 2023)
INFO : com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
콘솔 안보일까봐 가져왔다!