Web
IBatis에서 CLOB 처리 (Select, Insert)
남자두부 2016. 7. 5. 14:07반응형
IBatis(아이바티스)에서 CLOB을 처리하는 방법
// Select 처리방법
1
resultMap을 코딩한다.
* property와 column에 들어가는 이름은 DB의 칼럼 이름이다.
* resultMap을 사용하여 select 문을 연결하게 되면 DB에 있는 모든 칼럼들을 resultMap에 연결해주어야 한다.
* 소스코드를 보면 두번째에서 CLOB을 사용하였다.
1
2
3
4
5 |
<resultMap id="test" class="java.util.HashMap">
<result property="TEST1" column="TEST1" jdbcType="VARCHAR2" javaType="java.lang.String"/>
<result property="TEST2" column="TEST2" jdbcType="CLOB" javaType="java.lang.String"/>
<result property="TEST3" column="TEST3" jdbcType="NUMBER" javaType="java.lang.String"/>
</resultMap> |
cs |
2
select 문에서 위에 있는 resultMap 을 연결해준다.
* Select 문에서 가장 오른쪽에 resultMap을 연결시켜준 모습을 확인할 수 있다.
1
2
3
4
5
6
7
8 |
<select id="testSelcet" parameterClass="java.util.Map" resultClass="java.util.HashMap" resultMap="test">
SELECT
TEST1,
TEST2,
TEST3
FROM
TEST_TABLE
</select> |
cs |
3
아래와 같이 sqlMap 사이에 넣어주고 select 구문보다 위에 적용해야 한다.
1
2
3
4 |
<sqlMap namespace="testSqlMap">
// 이 사이에 resultMap 을 넣어준다.
// select 구문보다 위에 있어야 한다.
</sqlMap> |
cs |
// Insert 처리 방법
1
resultMap을 코딩한다. (Select 처리방법에서 1번 참조.)
2
변수명 마지막에 :java.lang.String 를 연결해서 사용하면 된다.
두번째에서 CLOB을 사용했기 때문에 밑에서 보면 VALUES에 두번째 변수에 :java.lang.String를 연결했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
<insert id="testInsert" parameterClass="java.util.Map">
INSERT INTO
TEST_TABLE
(
TEST1,
TEST2,
TEST3,
)
VALUES
(
#insertTest1#,
#insertTest2:java.lang.String#,
#insertTest3#
)
</insert> |
cs |
// 최종결과물
IBatis : ibatis-2.3.0.677
Server : Tomcat v7.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 |
<sqlMap namespace="testSqlMap">
<resultMap id="test" class="java.util.HashMap">
<result property="TEST1" column="TEST1" jdbcType="VARCHAR2" javaType="java.lang.String"/>
<result property="TEST2" column="TEST2" jdbcType="CLOB" javaType="java.lang.String"/>
<result property="TEST3" column="TEST3" jdbcType="NUMBER" javaType="java.lang.String"/>
</resultMap>
<select id="testSelcet" parameterClass="java.util.Map" resultClass="java.util.HashMap" resultMap="test">
SELECT
TEST1,
TEST2,
TEST3
FROM
TEST_TABLE
</select>
<insert id="testInsert" parameterClass="java.util.Map">
INSERT INTO
TEST_TABLE
(
TEST1,
TEST2,
TEST3,
)
VALUES
(
#insertTest1#,
#insertTest2:java.lang.String#,
#insertTest3#
)
</insert>
</sqlMap> |
cs |
반응형