객체-관계 맵핑의 문제점을 보완한 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>
| |