본문 바로가기
프로그래밍/웹 프로그래밍

struts + iBATIS + DBCP 사용하기

by 체리 2007. 8. 27.
반응형
struts와 iBATIS를 사용하기 위해 몇일 동안 씨름한 결과이다.
기본 동작만 확인 했으므로 보는 이에 따라 확장 가능할 것이다 ^^

iBATIS와 struts의 설치는 간단하기도 하거니와 이미 인터넷에 많은 자료가 있으니 그쪽을 참고하기 바란다.
여기에서는 iBATIS를 이용해 DB에서 객체로 가져와 struts에서 사용하는 것에 목적이 있다.
테스트를 위해 다음과 같은 순서로 user를 가져온다.

DB -> iBATIS -> struts -> 웹

당연히 이 순서는 개념만 있는 것이다.

DB에 연결을 하자.
/WEB-INF/classes에 sqlmap-config.xml 파일에 DB를 연결한다.

<sqlMapConfig>
  <properties resourse="config/database.properties" />
  <transactionManager type="JDBC">
    <dataSource type="DBCP">
      <property name="driverClassName" value="${driver}" />
      <property name="url" value="${url}" />
      <property name="username" value="${username}" />
      <property name="password" value="${password}" />
      <property name="maxActive" value="10" />
      <property name="initialSize" value="1" />
      <property name="removeAbandoned" value="true" />
      <property name="removeAnandonedTimeout" value="60" />
      <property name="logAnandoned" value="true" />
    </dataSource>
  </transactionManager>
  <sqlMap resource="sql/member.xml"></sqlMap>
</sqlMapConfig>

두번째 줄에서 볼 수 있듯이 실제 DB 설정 파일은 ./config/database.properties(WEB-INF/classes/config/database.properties) 라는 파일에 들어있다.
내용은 다음과 같다.

driver = org.postgresql.Driver
url=jdbc:postgresql://localhost/DB명
username=접속id
password=접속비밀번호

위와 같이 파일을 만들고 저장하면 추후에 sqlmap-config.xml 파일이 불려질때 같이 읽어진다.

struts 파일의 구성은 http://wiki.javajigi.net/pages/viewpage.action?pageId=82 이곳에서 받을 수 있다.
난 실제 구현시에 이보다 더 간단히 구현하여 객체 리스트를 view에서 받아 오는지를 테스트 했었다.
스트럿츠 프레임워크 워크북 1장 1강 - 사용자 관리 프로젝트 (프레임워크)
스트럿츠 프레임워크 워크북 1장 2강 - 사용자 관리 프로젝트 (프레임워크)
스트럿츠 프레임워크 워크북 1장 3강 - 사용자 관리 프로젝트 (프레임워크)
스트럿츠 프레임워크 워크북 1장 4강 - 사용자 관리 프로젝트 (프레임워크)
스트럿츠 프레임워크 워크북 1장 5강 - 사용자 관리 프로젝트 (프레임워크)
모두 도움이 되는 부분으로 읽어보기를 추천한다.

계속해서 iBATIS 설정 부분이다.
sqlmap-config.xml 파일의 끝자락에 보면 member.xml을 볼 수 있다.
이 파일에 sql문을 저장하고 이를 실행하는 것이다.
아래의 파일은 ./sql/member.xml(/WEB-INF/classes/sql/member.xml) 이다.

<sqlMap>
  <resultMap id="resultMemberList" class="com.test.user.User"
    <result column="name" property="name" nullValue="" />
    <result column="password" property="password" nullValue="" />
  </resultMap>
  <select id="getMemberList" resultMap="resultMemberList">
    select * from test
  </select>
</sqlMap>

이곳에서 주목할 곳이 resultMap의 class 부분이다.
이 부분이 내가 생성한 User라는 클래스를 연결하는 부분이다.
이렇게 설정하면 view에서 user객체의 list를 얻을 수 있다.

view에서는 이렇게 불러온다.
단순한 테스트 용도이기 때문에 jsp에 그냥 이렇게 넣었지만 실제 제품으로 구성하기 위해서는 따로 처리를 해야 할 것이다.

List userList = (List)request.getAttribute("userList");
Iterator userIter = userList.iterator();
while(userIter.hasNext())
{
  User user = (User)userIter.next();
  out.print("name : "+user.getName()+"|");
  out.print("password : "+user.getPassword()+"<br>");
}

iBATIS 부분도 어디에서 보고 공부를 하긴 했는데, 어디에서 본 내용인지 잊어버렸다 -_-
반응형

댓글