{"id":6111,"date":"2019-02-17T11:33:06","date_gmt":"2019-02-17T02:33:06","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=6111"},"modified":"2020-11-16T11:18:23","modified_gmt":"2020-11-16T02:18:23","slug":"mybatis%eb%a5%bc-%ed%86%b5%ed%95%9c-select-insert-delete","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=6111","title":{"rendered":"mybatis\ub97c \ud1b5\ud55c Select, Insert, Delete"},"content":{"rendered":"<p>\uacfc\uac70\uc5d0 <a href='http:\/\/www.gisdeveloper.co.kr\/?p=5168'>mybatis \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9\ud558\uae30<\/a>\ub77c\ub294 \uc81c\ubaa9\uc73c\ub85c mybatis\ub97c \uc774\uc6a9\ud558\uae30 \uc704\ud55c \ud504\ub85c\uc81d\ud2b8 \uc124\uc815\uacfc \uac04\ub2e8\ud55c SELECT \ubb38\uc744 \ud638\ucd9c\ud574 \uadf8 \uacb0\uacfc\ub97c \uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc5d0 \uc2e4\uc81c \ud504\ub85c\uc81d\ud2b8\uc5d0 mybatis\ub97c \uc0ac\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud558\uc5ec \uc880\ub354 \uad6c\uccb4\uc801\uc778 SQL \ubb38\uc744 \ud638\ucd9c\ud558\ub294 API\ub97c \ud30c\uc545\ud558\uc5ec \uc815\ub9ac\ud574 \ubd05\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \uc0ac\uc6a9\ud558\ub294 \ud14c\uc774\ube14\uc758 \uad6c\uc870\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. (\ud5d0! \uadf8\ub9bc \ub300\ub530 \ud06c\uac8c \ud45c\uc2dc\ub418\ub124.. -_-;)<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2019\/02\/table_mybatis.png\" \/><\/p>\n<p>\uc55e\uc11c \uc5b8\uae09\ud574 \ub4dc\ub9b0 <a href='http:\/\/www.gisdeveloper.co.kr\/?p=5168'>mybatis \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9\ud558\uae30<\/a>\ub97c \ud1b5\ud574 \ud504\ub85c\uc81d\ud2b8\ub97c \uad6c\uc131\ud558\uace0, SQL \ubb38\uc744 \uc815\uc758\ud558\ub294 sql.xml \ud30c\uc77c\uc744 \uc544\ub798\ucc98\ub7fc \uad6c\uc131\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\">\r\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?> \r\n&lt;!DOCTYPE mapper PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\" \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\">\r\n &lt;mapper namespace=\"test\">\r\n    &lt;select id=\"getFirstPlayerName\" resultType=\"string\">\r\n        SELECT name FROM players LIMIT 1\r\n    &lt;\/select>\r\n    \r\n    &lt;select id=\"getFirstPlayer\" resultType=\"map\">\r\n        SELECT name, age FROM players LIMIT 1\r\n    &lt;\/select>\r\n    \r\n    &lt;select id=\"getPlayers\" resultType=\"map\">\r\n        SELECT name, age FROM players\r\n    &lt;\/select>\r\n    \r\n    &lt;select id=\"getPlayersWhere\" resultType=\"map\">\r\n        SELECT name, age FROM players WHERE age > #{age}\r\n    &lt;\/select>\r\n    \r\n    &lt;select id=\"getPlayersWhere2\" resultType=\"map\">\r\n        SELECT name, age FROM players WHERE age > #{age} AND name LIKE #{name}\r\n    &lt;\/select>\r\n    \r\n    &lt;insert id=\"insertPlayer\"> \r\n    \tINSERT INTO players (name, age) VALUES (#{name}, #{age}) \r\n    &lt;\/insert>\r\n    \r\n    &lt;delete id=\"deletePlayerWhere\"> \r\n    \tDELETE FROM players WHERE name = #{name} \r\n    &lt;\/insert>    \r\n&lt;\/mapper>\r\n<\/pre>\n<p>\ubcf4\uc2dc\ub294 \uac83\ucc98\ub7fc SELECT \ubb38\uc5d0 \ub300\ud55c getFirstPlayerName, getFirstPlayer, getPlayers, getPlayersWhere, getPlayersWhere2\uacfc INSERT \ubb38\uc5d0 \ub300\ud55c insertPlayer, DELETE \ubb38\uc5d0 \ub300\ud55c deletePlayerWhere\uac00 \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 7\uac1c\uc5d0 \ub300\ud55c SQL\ubb38\uc744 \uc2e4\ud589\ud558\ub294 API\uc758 \uc124\uba85\uc744 \ud1b5\ud574 mybatis\uc5d0\uc11c SELECT, INSERT, DELETE \ubb38\uc758 \ud638\ucd9c\uc744 \uc815\ub9ac\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 getFirstPlayerName\uc740 \ud14c\uc774\ube14\uc758 \uccab\ubc88\uc9f8 Row\uc5d0 \ub300\ud55c name \ud544\ub4dc\uac12\uc744 \uac00\uc838\uc624\ub294 \uac83\uc778\ub370, \uad00\ub828\ub41c API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \ubc18\ud658\uac12\uc774 string\uc774\uace0 \ubc18\ud658\uacb0\uacfc\ub294 1\uac74 \uc774\ud558\uc774\ubbc0\ub85c String\uacfc SqlSession \uac1d\uccb4\uc758 selectOne \ud568\uc218\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nString result = session.selectOne(\"test.getFirstPlayerName\");\r\n\/\/ \ud64d\uae38\ub3d9\r\n<\/pre>\n<p>\ub2e4\uc74c\uc740 getFirstPlayer\uc778\ub370, \ubc18\ud658\uacb0\uacfc\ub294 \uc5ed\uc2dc 1\uac74 \uc774\ud558\uc778\ub370 \ubc18\ud658 \ud544\ub4dc\uac00 name\uacfc age\ub85c 2\uac1c\uc785\ub2c8\ub2e4. API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nMap<String, Object> result = session.selectOne(\"test.getFirstPlayer\");\r\n \/\/ {name=\ud64d\uae38\ub3d9, age=18}\r\n<\/pre>\n<p>\ub2e4\uc74c\uc740 getPlayers\ub85c \ubc18\ud658 \uacb0\uacfc\ub294 0\uac74 \uc774\uc0c1\uc774\uba70 API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nList&lt;Map&lt;String, Object>> result = session.selectList(\"test.getPlayers\");\r\n\/\/ [{name=\ud64d\uae38\ub3d9, age=18}, {name=\uc784\uaebd\uc815, age=32}, {name=\uc77c\uc9c0\ub9e4, age=21}]\r\n<\/pre>\n<p>getPlayersWhere\ub294 \uc870\uac74 \uacb0\uacfc\uac00 \uc9c0\uc815\ub41c \uac83\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nList&lt;Map&lt;String, Object>> result = session.selectList(\"test.getPlayersWhere\", 20);\r\n\/\/ [{name=\uc784\uaebd\uc815, age=32}, {name=\uc77c\uc9c0\ub9e4, age=21}]\r\n<\/pre>\n<p>getPlayersWhere2\ub294 getPlayersWhere\ucc98\ub7fc \uc870\uac74\uc774 \uc9c0\uc815\ub418\uc5b4 \uc788\uc9c0\ub9cc \ube44\uad50 \uc870\uac74\uc73c\ub85c \uc0ac\uc6a9\ub418\ub294 \ubcc0\uc218\uac00 2\uac1c\uc785\ub2c8\ub2e4. \uc0ac\uc6a9\ud558\ub294 API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nMap<String, Object> param = new HashMap<>(); \r\nparam.put(\"age\", 20); \r\nparam.put(\"name\", \"\uc77c%\");\r\n\r\nList&lt;Map&lt;String, Object>> result = session.selectList(\"test.getPlayersWhere2\", param);\r\n\/\/ [{name=\uc77c\uc9c0\ub9e4, age=21}]\r\n<\/pre>\n<p>insertPlayer\ub294 \ub370\uc774\ud130\ub97c \ucd94\uac00\ud558\ub294 \uac83\uc73c\ub85c API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nMap&lt;String, Object> param = new HashMap&lt;>(); \r\nparam.put(\"age\", 41); \r\nparam.put(\"name\", \"\ud669\uc7a5\uad70\");\r\n\r\nint result = session.insert(\"test.insertPlayer\", param); \/\/ 1\r\nsession.commit();\r\n<\/pre>\n<p>deletePlayerWhere\ub294 \uc9c0\uc815\ub41c \uc870\uac74\uacfc \ub9e4\uce6d\ub418\ub294 \ub370\uc774\ud130\ub97c \uc0ad\uc81c\ud558\ub294 \uac83\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nMap&lt;String, Object> param = new HashMap&lt;>(); \r\nparam.put(\"name\", \"\ud669\uc7a5\uad70\");\r\n\r\nint result = session.delete(\"test.deletePlayerWhere\", param);  \/\/ 1\r\nsession.commit();\r\n<\/pre>\n<p>mybatis\ub294 \ubcc4\ub3c4\uc758 xml \ud30c\uc77c\uc744 \ud1b5\ud574 SQL \ubb38\uc758 \uc815\uc758 \ubd80\ubd84\uc744 \ub3c5\ub9bd\uc801\uc73c\ub85c \uc720\uc9c0\ud560 \uc218 \uc788\uc73c\uba70, SQL\ubb38\uc744 \ubcf4\ub2e4 \uc720\uc5f0\ud558\uac8c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4\ub294 \ubb38\ubc95 \uad6c\ubb38\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub610\ud55c mybatis\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\uacb0\uc2dc \ubc1c\uc0dd\ud558\ub294 \ubd80\ud558\ub97c \uc904\uc774\uae30 \uc704\ud55c Connection Pool\uc744 \uc790\uccb4\uc801\uc73c\ub85c \uc81c\uacf5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc678\uc5d0 JDBC\ub97c \uc9c1\uc811 \uc0ac\uc6a9\ud568\uc5d0 \ub530\ub77c \ubc1c\uc0dd\ud558\ub294 \ubcf5\uc7a1\ud55c try .. catch .. finally \ucf54\ub4dc \ubd80\ubd84\uc774 \uc81c\uac70\ub418\uc5b4 \ucf54\ub4dc\uc758 \uac00\ub3c5\uc131\uc774 \ud5a5\uc0c1\ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uacfc\uac70\uc5d0 mybatis \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9\ud558\uae30\ub77c\ub294 \uc81c\ubaa9\uc73c\ub85c mybatis\ub97c \uc774\uc6a9\ud558\uae30 \uc704\ud55c \ud504\ub85c\uc81d\ud2b8 \uc124\uc815\uacfc \uac04\ub2e8\ud55c SELECT \ubb38\uc744 \ud638\ucd9c\ud574 \uadf8 \uacb0\uacfc\ub97c \uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc5d0 \uc2e4\uc81c \ud504\ub85c\uc81d\ud2b8\uc5d0 mybatis\ub97c \uc0ac\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud558\uc5ec \uc880\ub354 \uad6c\uccb4\uc801\uc778 SQL \ubb38\uc744 \ud638\ucd9c\ud558\ub294 API\ub97c \ud30c\uc545\ud558\uc5ec \uc815\ub9ac\ud574 \ubd05\ub2c8\ub2e4. \uba3c\uc800 \uc0ac\uc6a9\ud558\ub294 \ud14c\uc774\ube14\uc758 \uad6c\uc870\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. (\ud5d0! \uadf8\ub9bc \ub300\ub530 \ud06c\uac8c \ud45c\uc2dc\ub418\ub124.. -_-;) \uc55e\uc11c \uc5b8\uae09\ud574 \ub4dc\ub9b0 mybatis \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9\ud558\uae30\ub97c \ud1b5\ud574 \ud504\ub85c\uc81d\ud2b8\ub97c \uad6c\uc131\ud558\uace0, SQL \ubb38\uc744 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=6111\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;mybatis\ub97c \ud1b5\ud55c Select, Insert, Delete&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60,12],"tags":[],"class_list":["post-6111","post","type-post","status-publish","format-standard","hentry","category-java","category-opensource"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6111"}],"version-history":[{"count":12,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6111\/revisions"}],"predecessor-version":[{"id":10618,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/6111\/revisions\/10618"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6111"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}