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

 

반응형