DBCP & JNDI & MyBatis FrameWork

시바코코개발자·2023년 8월 20일
0

DBCP(DataBase Connection Pool)
사용자 요청이 있을 때마다 DB연결을 한다면 코드가 복잡해지며,
많은 요청이 있을 때 연결 속도가 저하될 수 있다.
따라서 미리 Connnection을 만들어 두고(xml), 필요시 저장된 공간에서 가져다 쓴 후 반환하는 기법이다.

JNDI()
디렉터리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 자바API이며, 외부에 있는 객체를 가져오기 위한 기술이다.

MyBatis FrameWork

요청 전

1.Sql Session Factory Builder는
Sql Sessoin Factory(SSF)를 만들어준다.

2. SSF를 짓기위해서 MyBatis Config File(XML 파일)을 참조해서 SSF를 짓는다.MyBatis Config File에서 DBCP설정을 한다.

3. 이곳에서 커넥션정보를 필요로 하니깐,url,userName,password를 작성한다.

4.여러가지 설정들을 자바객체로 가져와야 이 SSFB한테 전달이 가능하다. SSFB은 자바객체이기 때문에 JNDI를 사용해서 MBCF를 자바로 가져온다.

5.자바객체가 되었기 때문에 SSFB한테 넘겨준다.

6.SSFB에는 빌드 메소드가 있는데, 이 빌드 메소드에 config파일을 전달하면, SQL Session Factory를 리턴해준다.

요청 후

1.SQL 세션 객체를 Sql Session Factory를 통해서 만들어낸다.

2. Sql Session은 Mapper라는 파일로 간다.

3. Mapper(XML파일, 쿼리문 여러개 들어있음.테이블 하나당 하나의 Mapper파일을 사용)에는 SQL구문이 있다.

4. Sql session은 Mapper라는 것을 이용해서 SQL구문을 실행해준다.

소스 코드안에 SQL문을 작성하면 코드가 길어지고 섞여 있어서 유지보수 및 분업이 쉽지 않다. MyBatis는 기존 JDBC 방식과 달ㄹ리 SQL문을 XML파일에 작성함으로써 코드가 분리되고, QL문 수정이 편해진다. 또한 DBCP를 사용하여 커넥션을 여러개 생성하기 때문에 JDBC만 사용하는 것보다는 작업 효율과 가독성이 좋아진다. MyBatis에서는 내부적으로 PreparedStatement를 사용한다.

0개의 댓글