본문 바로가기

Foundation/- JSP

oracle-mybatis 설정

mybatis 설정하기

 

- Mybatis는 SQL 질의문을 통해 결과물을 개발자가 지정한 클래스에 매핑하여 내보내주는 아주 유용한 프레임워크이다. SQL 질의문은 xml파일에서 관리하여 SQL 질의문이 수정되어도 컴파일이 필요없어 수정하기 편하다. (기존에는 .java파일에서 작성되어 컴파일이 필요했다.)

- Mybatis는 SqlSession이라는 자바 인터페이스를 이용해서 명령어 실행, Mapper 획득, 트랙잭션 등을맡게 된다.

- Mybatis는 sql문을 관리해주고, DAO의 긴 코딩을 단숨에 줄여준다.

 

# Mybatis는 빨간 영역에 해당되는 부분이다.

 

 

시작하기

모든 MyBatis 애플리케이션은 SqlSessionFactory 인스턴스를 사용한다. SqlSessionFactory 인스턴스는 SqlSessionFactoryBuilder를 사용하여 만들 수 있다.

SqlSessionFactoryBuilder는 XML 설정파일에서 SqlSessionFactory인스턴스를 빌드 할 수 있다.

# 이 코드를 한번보면, InputStream 타입의 inputStream 변수에 xml 설정 파일을 담고있는 resource를 getResourceAsStream하고 그 inputStream으로, sqlSessionFactory를 빌드 하고 있다.

# 만들어진 sqlSessionFactory로 openSession하여 SqlSession 객체를 생성 했다.

# SqlSessionFactory는 말 그대로 SqlSession 인스턴스를 만들 수 있다. SqlSession은 데이터베이스에 대해 SQL 명령어를 실행하기 위해 필요한 모든 메서드를 가지고 있다.

 

XML 설정파일 살펴보기

# <properties>를 통해서 외부에 설정했다. MyBatis는 properties요소에 명시된 속성을 가장 먼저 읽는다.

# 외부에 선언된 db.properties는 다음과 같다. 해당 파라미터를 가져오는 것이다.

# 마지막에 <mappers>는 매핑된 SQL 구문의 설정을 어디에 둘지 지정하는 것이다. 

 

매핑 SQL XML 파일 살펴보기

 

# namespace은 명명공간이라 불리며, 인터페이스 바인딩을 가능하게 한다. 명명공간을 사용하고 자바 패키지의 명명공간을 두면 코드가 깔끔해지고 MyBatis의 사용성이 크게 향상된다.

# <select> 구문은 MyBatis에서 가장 흔히 사용할 요쇼이다. 데이터베이스에서 데이터를 가져온다. 대부분의 애플리케이션은 데이터를 수정하기보다는 조회하는 기능을 많이 가지기때문에 MyBatis는 데이터를 조회하고 그 결과를 매핑하는데 집중하고 있다. 기존에 sql문을 만들고 PreparedStatement 객체를 통해 다시 그 객체로 set을 해준거에 비해 아주 짧아진 것을 확인할 수 있다.

# 속성

# 데이터를 변경하는 구문인 <insert>,<update>,<delete> 부분은 간단하다.