객체-관계 맵핑의 문제점을 보완한 sql매핑을 구현하는데 많이 사용되는 iBatis을 매우 간단하게 구현해 보았습니다.
실행은 이클립스의 java application으로 해보았습니다.
1. 테이블 작성
오라클 설정은 4. database.properties에서 작성한 부분을 참고하세요.
CREATE TABLE BLOG_USER(
USER_ID VARCHAR2(10) PRIMARY KEY,
USER_NAME VARCHAR2(20),
ROLE VARCHAR2(5),
PASSWORD VARCHAR2(10)
);
2. http://ibatis.apache.org/javadownloads.html로 가서 iBATIS Java 2.1.7 w/Binaries and Source파일을 다운로드 받고 압축을 풀면 lib폴더아래에
다음과 같이 세개의 라이브러리 파일이 있습니다.(용량이 커서 첨부하지 않았습니다. 직접 다운받으세요)
ibatis-common-2.jar
ibatis-dao-2.jar
ibatis-sqlmap-2.jar
이 세개의 파일을 클래스 패스에 추가합니다.
3. 이제부터 작성하는 파일들을 모두 한 디폴트 패키지(이클립스에서 src)에서 작성합니다.
4. ///////////// database.properties /////////////////////////////
####################################
# ORACLE
####################################
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:ORA92
username=oraclejava
password=oraclejava
5. ////////////// SqlMapClientManager.xml ////////////////
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="src/database.properties" />
<settings cacheModelsEnabled="false"
useStatementNamespaces="true"
/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name ="JDBC.Driver" value="${driver}"/>
<property name ="JDBC.ConnectionURL" value="${url}"/>
<property name ="JDBC.Username" value="${username}"/>
<property name ="JDBC.Password" value="${password}"/>
</dataSource>
</transactionManager>
<sqlMap resource="src/BlogUser.xml" />
</sqlMapConfig>
6. ///////////////// BlogUser.xml /////////////////////
<?xml version="1.0" encoding="EUC-KR" standalone="no"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="BlogUser">
<typeAlias alias="user" type="src.BlogUser"/>
<resultMap id="getBlogUserAll" class="user">
<result property="userID" column="USER_ID"/>
<result property="userName" column="USER_NAME"/>
<result property="role" column="ROLE"/>
<result property="password" column="PASSWORD"/>
</resultMap>
<select id="getBlogUserAll" resultMap="getBlogUserAll">
SELECT USER_ID,
USER_NAME,
ROLE,
PASSWORD
FROM BLOG_USER
</select>
<insert id="regUser" parameterClass="user">
INSERT INTO BLOG_USER (USER_ID,
USER_NAME,
ROLE,
PASSWORD)
VALUES (#userID#,
#userName#,
#role#,
#password#)
</insert>
<update id="updUser" parameterClass="user">
UPDATE BLOG_USER SET USER_NAME = #userName#,
ROLE = #role#,
PASSWORD = #password#
WHERE USER_ID = #userID#
</update>
<delete id="delUser" parameterClass="user">
DELETE FROM BLOG_USER WHERE USER_ID = #userID#
</delete>
</sqlMap>
| |
출처 : Tong - 반이오타님의 JAVA Framework통 |