gambae programing

[실습] 게시물 불러오기 (3/3) 본문

Java/Spring

[실습] 게시물 불러오기 (3/3)

gambae 2022. 9. 26. 19:15

DAO 클래스 생성

mybatis는 sql문과 java문을 구별하기 때문에 따로 파일을 만들어줘야 한다.

 

BoardDAO.java

 

기존 JDBC 사용 순서

3번,5번,7번

BoardMapper.xml

6번,8번,9번  => Mybatis Spring

1번,2번,4번  => DBCP

 

jdbc 모든 과정을 사용자가 처리해 줄 필요가 없기때문에 메소드를 구현(중괄호) 할 필요가 없다.

 

 

따라서 메소드에 abstract를 붙여줘야하는데 BoardDAO에 모든 메소드가 구현되지 않기때문에

차라리 클래스 자체를 interface로 변경해준다.

 

 

그런데 DAO는 Data Access Object, 그러나 현재 DAO에서는 완전한 객체가 존재하지않는다.

따라서 BoardMapper.xml 과 연결된다는 의미에서 BoardDAO를 BoardMapper로 변경해준다.

 

 

BoardMapper.java 메소드와 BoardMapper.xml의 <select>태그는 서로 연결되어있다.

select태그의 리턴값이 잘 담기기위해서는 다음과 같은 조건이 붙는다

1. 필드의 변수명 == 컬럼명

2. 기본생성자를 가진 vo이어야한다.

데이터베이스 커넥션 풀 (DBCP) 

root-context.xml

 

bean태그는 자바의 객체생성과 동일한 역할을 한다.

 

HikariConfig 클래스 객체 생성

 

HikariConfig의 class 이름

 

jdbcurl의 value

 

driverClass의 value

 

config를 생성자 매개변수로 넣어준다.
dataSoure를 참조한다.
com.gjai.mapper 패키지에서 어노테이션들을 scan한다.
@Mapper 어노테이션이 된 인터페이스를 찾아서 팩토리빈에 던져준다.

 

4번을 실행을 하면 에러가 나기때문에 구글에 mybatis spring 검색 후
root-context.xml에 복붙해줘야 한다

 

BoardMapper는 인터페이스여서  객체를 만들 수 없기 때문에

컨트롤러에서 필드 생성 후

@Autowired를 통해 sql팩토리빈 객체를 집어넣어준다.

 

 

 

'Java > Spring' 카테고리의 다른 글

[비동기 통신] 게시글 불러오기  (0) 2022.09.27
[실습] 게시물 작성하기  (0) 2022.09.26
[실습] 게시물 불러오기 (2/3)  (1) 2022.09.26
[실습] 게시물 불러오기 (1/3)  (0) 2022.09.26
Spring 동작 흐름  (0) 2022.09.26
Comments