정보과학 IT

iBatis - 기본 설정 & 게시판 만들기

물곰탱이 2013. 10. 22. 11:04

iBatis - 기본 설정 & 게시판 만들기

 

얼마전 iBatis 프로젝트가 myBatis라는 이름으로 변경되면서 apache 사이트에서 code.google로 이동하였습니다. myBatis 프로젝트로 변경되면서 많은 설정 부분이 변경되었지만, 일단 많이 사용하는 iBatis2 버전을 가지고 진행 하겠습니다.

본 설정법은 Eclipse + Tomcat 6.0 그리고 MySql 5 버전을 통해 진행하도록 하겠습니다.

iBatis란?
iBatis는 DBMS와 Java 객체간의 자동 맵핑 프레임웍 입니다.
즉, iBatis에서 select 쿼리를 수행하여 검색 된 쿼리가 다음과 같고

 idx category title regDate readCount
 1 질문 질문합니다. 2010-10-26 0


자바 객체의 property 명이 검색된 쿼리문의 column의 이름과 같다면

각각의 검색된 column 명에따라 자동으로 객체에 저장이 됩니다.

이렇듯 iBatis는 쉽게 DB의 데이터를 제어할 수 있는 DBMS-JAVA 객체간의 맵핑 프레임웍입니다.

iBatis 설정방법
1. iBatis 라이브러리와 MySQL Connector 라이브러리 다운
자바 프로그래밍의 시작은 늘 라이브러리의 추가입니다~^^

iBatis-2.3.4.726 을 다운로드 후, lib안의 ibatis-2.3.4.726.jar 
MySQL Java용 Connector 다운로드 후, mysql-connectgor-java-5.1.13-bin.jar
위의 두 파일을 이클립스에서 생성한 웹프로젝트 안의 webContent\WEB-INF\lib 디렉토리에 추가합니다.

2. 게시판에 사용될 DB와 Table을 생성합니다.(콘솔에서 접근하여 DB를 생성해도 되고, 다른 어플리케이션을 통해서 테이블을 생성하셔도 상관없습니다. 전 개인적으로 SQLGate라는 프로그램을 사용해서 개발합니다.^^)

MySQL DB생성과 권한 설정 방법

-DB 생성 쿼리

-Table 생성 쿼리

위와 같은 스크립트로 board_db 라는 데이터 베이스와 ibatis_board_tb 라는 테이블을 생성했습니다.

3. 생성된 테이블과 맵핑될 Value Object를 생성해 줍니다.
- IbatisBoardVO


4. DB를 사용할때 필요한 설정파일을 생성합니다.
1) db.properties
이 파일은 DB Connection을 맺기 위한 driver, url, username, password 등을 저장하는 파일입니다.


2) iBatis 설정을 할 SqlMapConfig.xml 파일을 생성합니다.


3) 사용할 쿼리문을 정의할 BoardSqlMap.xml 파일을 생성합니다.


4) iBatis를 사용하기 위한 자바 객체인 SqlMapClient를 생성하는 SQLManager class를 생성합니다.


SQLMapClient객체는 SqlMapConfig.xml파일을 읽어서 생성하게 되고, getSqlMap method를 통해 SqlMapClient객체를 전달 하게 됩니다.
이 클래스는 DB접근을 위한 클래스인 DAO(Data Access Object)에서 상속받아 사용하면됩니다.

여기까지 iBatis 사용을 위한 설정이 끝났습니다. 이제 이 설정을 통해 iBatis사용 하도록 해보겠습니다.
저는 html테그를 사용할 jsp - 비지니스로직을 처리할 service class - iBatis를 사용해서 DB에 접근하기 위한 DAO class를 만들어 MVC패턴으로 진행하도록 하겠습니다.

5. SQLManager를 상속받은 DAO class를 생성합니다.


getTotalBoardList란 method는 select Query를 통해 게시판 테이블의 내용을 모두 가져와 List형태로 리턴해 주는 method입니다.
이부분에서 중요하게 봐야 할부분은 두군대 인데요

첫번째. SQLManager를 상속받고 getSqlMap method로 SqlMapClient 객체를 가져옵니다.
이때 SqlMapClient객체를 통해 호출 할수 있는 method는 여러가지가 있는데 5가지 정도만 살펴보겠습니다.(제일 많이 사용하는 method이기도 합니다)
① queryForList : Select를 통해 데이터를 가져올때 사용합니다. 만약 Select를 통해 얻어오는 데이터가 여러 행일경우, iBatis는 자동으로 List형태로 변환하여 전달해 줍니다.
② queryForObject : Select를 통해 데이터를 가져올때 사용합니다. 만약 select를 통해 얻어오는 데이터가 1개일 경우(where 조건문을 통해서) queryForObject 를 사용합니다.
③ insert : insert를 할때 사용합니다.
④ update : update를 할때 사용합니다.
⑤ delete : delete를 할때 사용합니다.

두번째. queryForList메소드(queryForObject, insert, update, delete 모두 동일)의 파라미터로 IbatisBoard.getTotalBoardList 로 전달하는데 앞의 IbatisBoard는 BoardSqlMap.xml의 namespace이고, 뒤의 getTotalBoardList는 BoardSqlMap.xml의 select태그 ID입니다.
이렇게 하면 IbatisBoard 라는 네임스페이스를 갖는 xml에서 getTotalBoardList라는 아이디를 갖는 쿼리를 실행하겠단 뜻이 됩니다.

6. 비지니스 로직을 처리할 Service class인 IbatisBoardServlce class를 생성합니다.

크게 로직을 처리하는 부분은 아직까지 없음으로 결과값만 return해 주는 역할만 하겠습니다.

7. 데이터를 보여줄 웹페이지(board_list.jsp)를 만들겠습니다.


위와 같이 작업하시면 결과 페이지를 확인 하실수 있습니다. 단. DB에 글 데이터는 들어있어야 겠죠~?^^

 

http://javastore.tistory.com/101

 

 

'정보과학 IT' 카테고리의 다른 글

컴파일(Compile)과 빌드(Build)  (0) 2013.10.22
HUDSON [허드슨] 설치 및 시작  (0) 2013.10.22
CBD(Component Based Development)  (0) 2013.10.21
OSI 7계층 참조 모델  (0) 2013.10.21
OSI 7계층 (OSI 7 Layer)  (0) 2013.10.21