Web
MyBatis Select, Insert, Update, Delete 마이바티스 예제
남자두부 2016. 7. 6. 16:44반응형
MyBatis(이하 마이바티스)
IBatis(이하 아이바티스)
변경된 사항
1
jdbcType
// 아이바티스
1
2
3
4 |
<resultMap id="test" type="java.util.HashMap">
<result property="TEST1" column="TEST1" jdbcType="NUMBER" javaType="java.lang.String"/>
<result property="TEST2" column="TEST2" jdbcType="VARCHAR2" javaType="java.lang.String"/>
</resultMap> |
cs |
// 마이바티스
1
2
3
4 |
<resultMap id="test" type="java.util.HashMap">
<result property="TEST1" column="TEST1" jdbcType="NUMERIC" javaType="java.lang.String"/>
<result property="TEST2" column="TEST2" jdbcType="VARCHAR" javaType="java.lang.String"/>
</resultMap> |
cs |
2
변수 선언방법
// 아이바티스
1
2
3 |
#test1#,
#test2#,
#test3# |
cs |
// 마이바티스
1
2
3 |
#{test1},
#{test2},
#{test3} |
cs |
3
마이바티스는 resultMap(리설트 맵)을 통해서 변수의 타입을 정해주어야 오류가 나지 않는다.
4
변수를 보낼 때 Map(맵)에 담아서 보내는 경우가 많다.
이런 경우 변수가 비어있는 것을 알아내고자 할 때 비교값으로 null을 사용해야 한다.
-----
선행작업
1
2
3
4
5 |
<resultMap id="testMap" type="java.util.HashMap">
<result property="TEST1" column="TEST1" jdbcType="NUMERIC" javaType="java.lang.String"/>
<result property="TEST2" column="TEST2" jdbcType="CLOB" javaType="java.lang.String"/>
<result property="TEST3" column="TEST3" jdbcType="VARCHAR" javaType="java.lang.String"/>
</resultMap> |
cs |
각 SQL 구문 사용방법
// Select
1
2
3
4
5
6
7
8
9 |
<select id="testSelect" parameterType="java.util.Map" resultMap="testMap">
SELECT
TEST1,
TEST2,
TEST3
FROM
TEST_TABLE
ORDER BY DATA DESC
</select> |
cs |
// Select + Where
1
2
3
4
5
6
7
8
9
10
11
12 |
<select id="testSelect" parameterType="java.util.Map" resultMap="testMap">
SELECT
TEST1,
TEST2,
TEST3
FROM
TEST_TABLE
<where>
TEST1 = #{testValue}
</where>
ORDER BY DATA DESC
</select> |
cs |
// Insert
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
<insert id="testSelect" parameterType="java.util.HashMap" >
INSERT INTO
TEST_TABLE
(
TEST1,
TEST2,
TEST3
)
VALUES
(
#{testValue1},
#{testValue2},
#{testValue3}
)
</insert> |
cs |
// Update
1
2
3
4
5
6
7
8 |
<update id="testUpdate" parameterType="java.util.HashMap">
UPDATE
TEST_TABLE
SET
TEST1 = #{testValue1}
WHERE
TEST2 = #{testValue2}
</update> |
cs |
// Delete
1
2
3
4
5
6
7 |
<delete id="testDelete" parameterType="java.util.HashMap">
DELETE
FROM
TEST_TABLE
WHERE
TEST1 = #{testValue}
</delete> |
cs |
// 최종결과물
IBatis : mybatis-3.4.0
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 |
<mapper namespace="testMapper">
<resultMap id="testMap" type="java.util.HashMap">
<result property="TEST1" column="TEST1" jdbcType="NUMERIC" javaType="java.lang.String"/>
<result property="TEST2" column="TEST2" jdbcType="VARCHAR" javaType="java.lang.String"/>
<result property="TEST3" column="TEST3" jdbcType="CLOB" javaType="java.lang.String"/>
</resultMap>
<select id="testSelect" parameterType="java.util.Map" resultMap="testMap">
SELECT
TEST1,
TEST2,
TEST3
FROM
TEST_TABLE
<!-- 생략가능 -->
<where>
TEST1 = #{testValue}
</where>
ORDER BY DATA DESC
</select>
<insert id="testSelect" parameterType="java.util.HashMap" >
INSERT INTO
TEST_TABLE
(
TEST1,
TEST2,
TEST3
)
VALUES
(
#{testValue1},
#{testValue2},
#{testValue3}
)
</insert>
<update id="testUpdate" parameterType="java.util.HashMap">
UPDATE
TEST_TABLE
SET
TEST2 = #{testValue2},
TEST3 = #{testValue3}
WHERE
TEST1= #{testValue1}
</update>
<delete id="testDelete" parameterType="java.util.HashMap">
DELETE
FROM
TEST_TABLE
WHERE
TEST1 = #{testValue1}
</delete>
</mapper> |
cs |
반응형