728x90
반응형

아이바티스(iBATIS) 도입 이유

ibatis 또는 Data Mapper 라고 한다.

java에서 Object를 사용함에 있어서, getXXX, setXXX 로의 접근은

사용법과 유지보수 측면에서 이미 standard 로 여겨지고 있다.

ibatis는 상당한 코딩의 축소로 인해 개발자로 하여금 지겨운 노가다에서 해방하게 해준다.

*spring app-servlet.xml 에 추가

<bean id="ibatisdao" class="member.dao.MemberIbatisDaoImpl"/>

 

*memberMapper.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap>

<!-- MemberDTO 클래스를 풀네임으로 안하고 이러한 별칭으로 부르겠다라고 정의

DB로부터 가져온 데이터를 저장할 객체를 지정하는 것을 의미

<typeAlias alia="memberDTO" type="member.dto.MemberDTO"/>

<!-- DB로부터 가져온 데이터를 클래스에 옮겨담기 위한 설정 Property는

멤버변수를 의미하고 column은 테이블의 필드명을 의미

컬럼명과 클래스의 멤버변수명이 동일하면 지정할 필요 없고 생략이 가능

id는 식별자, class는 위에 typeAlias에서 지정한 alias명

<resultMap id="memberResult" class="memberDTO">

<result property="id" column="id" />

<result property="password" column="password" />

...

</resultMap>

<!-- DB에 전달할내용을 의미. DB연동하는 모든 작업에 대해서 이렇게 작성하면

이것을 자바코드에서 불러서 쓸 수 있도록 객체를 생성하는 작업을별도로 해야한다.

select 태그 안에 적은 sql문의 수행결과를 resultMap에 넘겨주겠다는 의미

<select id="getMemberList" resultMap="memberResult">

select * from member

</select>

</sqlMap>

 

*SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMapConfig>

<transactionManager type="JDBC" commitRequired="false">

<dataSource type="SIMPLE">

<property name="JDBC.Driver" value="oracle.-

<property name ="JDBC.ConnectionURL" -

"JDBC.Username, Password -

</dataSource>

</transactionManager>

<!-- 또다른 설정파일을 연결해서 사용할 수 있고 실제 일처리를 담당하도록 쿼리를

담고 있는 설정파일의 경로를 지정한다.

이는 스프링의 import와 비슷한 기능으로 resource의 패키지명을 . 이 아니라 / 로 표현한다.

<sqlMap resource="member/ibatis/memberMapper.xml"/>

<!-- List more here..

<sqlMap resource="com/spring/data/Order.xml"/>

<sqlMap resource="com/spring/data/Documents.xml"/>

</sqlMapConfig>

 

*클래스 파일 MemberIbatisManager.java

public class MemberIbatisManager {

//memberMapper.xml 파일에서 작업한 것을 자바코드로 연결시키기 위해서 사용하는객체

private static SqlMapClients sqlMapper;

//sqlMapConfig.xml 를 input하고 있고 이 객체를 통해서 memberMapper.xml 파일에 접근가능

Reader reader = Resources.getResourceAsReader("member/ibatis/SqlMapConfig.xml");

sqlMapper=SqlMapClientBuilder.buildSqlMapClient(reader);

reader.close();

----

public static List getMemberList() {

List list = null;

list=sqlMapper.queryForList("getMemberList");

return list;

}

}

... try - catch 감싸는부분 생략함.

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

UNIX vi명령어  (0) 2013.09.11
스프링에서 로그 찍기 slf4j  (0) 2013.09.11
Math.ceil  (0) 2013.09.10
오라클 rownum 을 이용한 페이징 처리 기초  (0) 2013.09.10
오라클 시퀀스 및 날짜 예약어  (0) 2013.09.10

+ Recent posts