{"id":190,"date":"2016-10-27T08:43:24","date_gmt":"2016-10-27T08:43:24","guid":{"rendered":"http:\/\/www.hadooh.com\/?p=190"},"modified":"2016-10-28T01:09:34","modified_gmt":"2016-10-28T01:09:34","slug":"sequence-parameter-query-convert-to-named-parameter-query","status":"publish","type":"post","link":"https:\/\/www.hadooh.com\/?p=190","title":{"rendered":"sequence parameter query convert to named parameter query"},"content":{"rendered":"<p>\uc5b4\ub5a4 \ubbf8\uce5c\ucffc\ub9ac\uac19\uc740 \uacbd\uc6b0 \ubb3c\uc74c\ud45c \ud30c\ub77c\ubbf8\ud130\ub97c \uba87\uc2ed\uc5d0\uc11c \ubc31\uac1c\uc815\ub3c4\ub85c \uc0ac\uc6a9\ud558\ub294 \ucffc\ub9ac\uac00 \uc788\ub294\ub370,\u00a0\ucffc\ub9ac\ub97c \ubd84\uc11d\ud558\uae30\uc5d0 \ubb34\uc9c0 \ud798\ub4e4\uc5b4\uc11c \ubb3c\uc74c\ud45c\ucffc\ub9ac\ub97c named\ucffc\ub9ac\ub85c \ubcc0\uacbd\ud574\uc8fc\ub294 jsp\ud398\uc774\uc9c0\ub97c \ub9cc\ub4e4\uc5c8\ub2e4.<\/p>\n<p>\uae30\ubcf8\uc18c\uc2a4\ub294 &#8220;\uae4c\uba39\uc9c0\ub9d0\uc790!(\uc774\uae00\ub8e8\uc2a4)&#8221; \u00a0\uad8c\ub0a8\ub2d8 \ube14\ub85c\uadf8\ub2d8\uc5d0\uac8c\uc11c \uac00\uc838\uc654\uc73c\uba70<br \/>\n<a href=\"http:\/\/egloos.zum.com\/kwon37xi\/v\/1897209\">http:\/\/egloos.zum.com\/kwon37xi\/v\/1897209<\/a><br \/>\n\uc0ac\uc6a9\uc0c1 \ud3b8\uc758 \ub54c\ubb38\uc5d0 \ub098\ud55c\ud14c \ub9de\uac8c \uc870\uae08 \uc218\uc815\ud588\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.hadooh.com\/wp-content\/uploads\/2016\/10\/\ucffc\ub9ac\ud569\uce58\uae30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-191\" src=\"https:\/\/www.hadooh.com\/wp-content\/uploads\/2016\/10\/\ucffc\ub9ac\ud569\uce58\uae30-1024x389.png\" alt=\"\ucffc\ub9ac\ud569\uce58\uae30\" width=\"604\" height=\"229\" srcset=\"https:\/\/www.hadooh.com\/wp-content\/uploads\/2016\/10\/\ucffc\ub9ac\ud569\uce58\uae30-1024x389.png 1024w, https:\/\/www.hadooh.com\/wp-content\/uploads\/2016\/10\/\ucffc\ub9ac\ud569\uce58\uae30-300x114.png 300w, https:\/\/www.hadooh.com\/wp-content\/uploads\/2016\/10\/\ucffc\ub9ac\ud569\uce58\uae30-768x292.png 768w, https:\/\/www.hadooh.com\/wp-content\/uploads\/2016\/10\/\ucffc\ub9ac\ud569\uce58\uae30.png 1211w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>JoinQuery.jsp<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<pre class=\"lang:default decode:true \">&lt;!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/html4\/loose.dtd\"&gt;\r\n&lt;%@ page contentType=\"text\/html;charset=UTF-8\" pageEncoding=\"UTF-8\"%&gt;\r\n&lt;%@ page import=\"java.util.*\"%&gt;\r\n&lt;%!\r\n\/** \ud30c\ub77c\ubbf8\ud130 \uac1c\uc218 *\/\r\npublic static final int NUMBER_OF_PARAMS = 200;\r\n\r\n\/** \ucffc\ub9ac\uc640 \ud30c\ub77c\ubbf8\ud130 \ud569\uce58\uae30 *\/\r\npublic static String joinQuery(String query, String [] params, String [] isString) {\r\n    int currentIndex = query.indexOf('?');\r\n    if (currentIndex &lt; 0) {\r\n        return query;\r\n    }\r\n    StringBuffer resultQuery = new StringBuffer(query.substring(0, currentIndex));\r\n\r\n    int countOfQuestionMark = getCountOfQuestionMark(query);\r\n    System.out.println(\"\ubb3c\uc74c\ud45c \uac1c\uc218 : \" + countOfQuestionMark);\r\n\r\n    for (int i = 0; i &lt; countOfQuestionMark; i++) {\r\n        if (params[i] == null) {\r\n            resultQuery.append(\"NULL\");\r\n        } else if (isChecked(isString, i)) {\r\n            resultQuery.append(converToSqlString(params[i]));\r\n        } else {\r\n            resultQuery.append(params[i]);\r\n        }\r\n\r\n        if (i == countOfQuestionMark - 1) {\r\n            resultQuery.append(query.substring(currentIndex + 1));\r\n        } else {\r\n            int nextIndex = query.indexOf('?', currentIndex + 1);\r\n            resultQuery.append(query.substring(currentIndex + 1, nextIndex));\r\n            currentIndex = nextIndex;\r\n        }\r\n    }\r\n\r\n    return resultQuery.toString();\r\n}\r\n\r\n\/** \ubb38\uc790\uc5f4\ub85c \uc9c0\uc815\ub41c \uac83\uc778\uac00? *\/\r\npublic static boolean isChecked(String [] isString, int value) {\r\n    if (isString == null) {\r\n        return false;\r\n    }\r\n\r\n    String valueStr = String.valueOf(value);\r\n    for (int i=0; i &lt; isString.length; i++) {\r\n        if (valueStr.equals(isString[i])) {\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n}\r\n\r\n\/** \ubb38\uc790\uc5f4\uc5d0 \ub4e4\uc5b4 \uc788\ub294 ' \ub97c ''\ub85c \ubc14\uafbc\ub2e4. *\/\r\npublic static String converToSqlString(String str) {\r\n    return \"'\" + str.replaceAll(\"'\", \"''\") + \"'\";\r\n}\r\n\r\n\/** \ubb38\uc790\uc5f4\uc5d0 \ud3ec\ud568\ub41c ?\uc758 \uac1c\uc218 *\/\r\npublic static int getCountOfQuestionMark(String str) {\r\n    int count = 0;\r\n    int currentIndex = 0;\r\n    String temp = str;\r\n    while ((currentIndex = temp.indexOf(\"?\", currentIndex)) &gt; 0) {\r\n        count++;\r\n        currentIndex++;\r\n    }\r\n\r\n    return count;\r\n}\r\n\r\n\/** HTML \ud2b9\uc218\ubb38\uc790 \ubcc0\ud658 *\/\r\npublic static String value(String str) {\r\n    if (str == null) {\r\n        return \"\";\r\n    }\r\n\r\n    String temp = str;\r\n    temp = temp.replaceAll(\"&amp;\", \"&amp;amp;\");\r\n    temp = temp.replaceAll(\"&lt;\", \"&amp;lt;\");\r\n    temp = temp.replaceAll(\"&gt;\", \"&amp;gt;\");\r\n    temp = temp.replaceAll(\"\\\"\", \"&amp;quot;\");\r\n    return temp;\r\n}\r\n\r\npublic static String value(String [] params, int index) {\r\n    if (params == null) {\r\n        return \"\";\r\n    } else if (index &gt;= params.length) {\r\n        return \"\";\r\n    }\r\n\r\n    return value(params[index]);\r\n}\r\n%&gt;\r\n\r\n&lt;%\r\nrequest.setCharacterEncoding(\"UTF-8\");\r\n\r\nString query = request.getParameter(\"query\");\r\nString [] params = request.getParameterValues(\"params\");\r\nString [] isString = request.getParameterValues(\"isstring\");\r\n%&gt;\r\n&lt;html&gt;\r\n    &lt;head&gt;\r\n        &lt;title&gt;\ucffc\ub9ac\uc640 \ud30c\ub77c\ubbf8\ud130 \ud569\uce58\uae30&lt;\/title&gt;\r\n        &lt;style type=\"text\/css\"&gt;\r\n\t\t\thtml, body {\r\n\t\t\t\tmargin:0;\r\n\t\t\t\theight:100%;\r\n\t\t\t}\r\n\t\t\t#wrapper {\r\n\t\t\t\tmargin:0 auto;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\theight:100%; \r\n\t\t\t}\r\n\t\t\t#resultArea {\r\n\t\t\t\theight:300px;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\tbackground:red;\r\n\t\t\t}\r\n\t\t\t#leftArea {\r\n\t\t\t\tfloat:left;\r\n\t\t\t\twidth:900px;\r\n\t\t\t\tmin-height:100%;\r\n\t\t\t\tbackground:#FFD149;\r\n\t\t\t\tmargin-left: 5px;\r\n\t\t\t}\r\n\t\t\t#rightArea {\r\n\t\t\t\tmin-height:100%;\r\n\t\t\t\tbackground:#3EBAEB;\r\n\t\t\t\tborder-left:3px solid #000;\r\n\t\t\t}\r\n\t\t&lt;\/style&gt;\r\n    &lt;\/head&gt;\r\n    &lt;body&gt;\r\n    &lt;script type=\"text\/javascript\"&gt;\r\n    function getParam(obj){\r\n    \tvar parameters = document.getElementById(\"parameters\");\r\n    \tvar lines = parameters.value.split(\"\\n\");\r\n\r\n    \tvar input_params = document.getElementsByName(\"params\");\r\n    \t\r\n    \tfor(var i=0;i&lt;lines.length;i++){\r\n    \t\tinput_params[i].value = \":\"+lines[i].trim();\r\n    \t\t\r\n    \t}\r\n    }\r\n    &lt;\/script&gt;\r\n    &lt;div id=\"wrapper\"&gt;\r\n\t    &lt;div id=\"resultArea\"&gt;\r\n\t\t    &lt;h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;== \ucffc\ub9ac \ud569\uce58\uae30 ==&lt;\/h1&gt;\r\n\t\t    &lt;%if (query != null &amp;&amp; query.trim().length() &gt; 0) { %&gt;\r\n\t\t        &lt;h2&gt;\ucffc\ub9ac \ud569\uce5c \uacb0\uacfc&lt;\/h2&gt;\r\n\t\t        &lt;textarea rows=\"15\" cols=\"120\" style=\"font-size: 12px;\"&gt;&lt;%= joinQuery(query, params, isString) %&gt;&lt;\/textarea&gt;\r\n\t\t    &lt;hr \/&gt;\r\n\t\t    &lt;%} %&gt;\r\n\t    &lt;\/div&gt;\r\n\t    &lt;form action=\"JoinQuery.jsp\" method=\"post\"&gt;\r\n\t\t        &lt;div id=\"leftArea\"&gt;\r\n\t\t        \t&lt;span&gt;\uc544\ub798\uc5d0 PreparedStatement \ucffc\ub9ac \ubb38\uc7a5\uc744 \ub123\uc73c\uc138\uc694&lt;\/span&gt;\r\n\t\t        \t&lt;textarea name=\"query\" rows=\"40\" cols=\"120\" style=\"font-size: 12px;\"&gt;&lt;%=value(query)%&gt;&lt;\/textarea&gt;\r\n\t\t        &lt;\/div&gt;\r\n\t\t        &lt;div id=\"rightArea\"&gt;&lt;span&gt;\uc544\ub798\uc5d0 \ud30c\ub77c\ubbf8\ud130 \ubaa9\ub85d\uc744 \ub123\uc73c\uc138\uc694&lt;\/span&gt;&lt;input type=\"submit\" value=\"\ud569\uce58\uae30\" \/&gt;\r\n\t\t        \t&lt;textarea id=\"parameters\" rows=\"40\" cols=\"30\" style=\"font-size: 12px;\" onchange=\"getParam()\"&gt;&lt;\/textarea&gt;\r\n\t\t\t        &lt;div id=\"inputDiv\" style=\"visibility: hidden;\"&gt;\r\n\t\t\t\t        &lt;%for (int i=0; i &lt; NUMBER_OF_PARAMS; i++) { %&gt;\r\n\t\t\t\t            &lt;input style=\"font-size: 12px;\" name=\"isstring\" type=\"checkbox\" value=\"&lt;%=i%&gt;\" &lt;%=isChecked(isString, i) ? \"checked\" : \"\" %&gt; \/&gt; \ubb38\uc790\ud615?\r\n\t\t\t\t            &lt;input style=\"font-size: 12px;\" name=\"params\" type=text\" width=\"120\" size=\"120\" value=\"&lt;%=value(params, i)%&gt;\"\/&gt;\r\n\t\t\t\t            &lt;br \/&gt;\r\n\t\t\t\t        &lt;%} %&gt;\r\n\t\t\t\t    &lt;\/div&gt;\r\n\t\t        &lt;\/div&gt;\r\n\t    &lt;\/form&gt;\r\n    &lt;\/div&gt;\r\n    \r\n    &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc5b4\ub5a4 \ubbf8\uce5c\ucffc\ub9ac\uac19\uc740 \uacbd\uc6b0 \ubb3c\uc74c\ud45c \ud30c\ub77c\ubbf8\ud130\ub97c \uba87\uc2ed\uc5d0\uc11c \ubc31\uac1c\uc815\ub3c4\ub85c \uc0ac\uc6a9\ud558\ub294 \ucffc\ub9ac\uac00 \uc788\ub294\ub370,\u00a0\ucffc\ub9ac\ub97c \ubd84\uc11d\ud558\uae30\uc5d0 \ubb34\uc9c0 \ud798\ub4e4\uc5b4\uc11c \ubb3c\uc74c\ud45c\ucffc\ub9ac\ub97c named\ucffc\ub9ac\ub85c \ubcc0\uacbd\ud574\uc8fc\ub294 jsp\ud398\uc774\uc9c0\ub97c \ub9cc\ub4e4\uc5c8\ub2e4. \uae30\ubcf8\uc18c\uc2a4\ub294 &#8220;\uae4c\uba39\uc9c0\ub9d0\uc790!(\uc774\uae00\ub8e8\uc2a4)&#8221; \u00a0\uad8c\ub0a8\ub2d8 \ube14\ub85c\uadf8\ub2d8\uc5d0\uac8c\uc11c \uac00\uc838\uc654\uc73c\uba70 http:\/\/egloos.zum.com\/kwon37xi\/v\/1897209 \uc0ac\uc6a9\uc0c1 \ud3b8\uc758 \ub54c\ubb38\uc5d0 \ub098\ud55c\ud14c \ub9de\uac8c \uc870\uae08 \uc218\uc815\ud588\ub2e4. JoinQuery.jsp &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &lt;!DOCTYPE html PUBLIC &#8220;-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN&#8221; &#8220;http:\/\/www.w3.org\/TR\/html4\/loose.dtd&#8221;&gt; &lt;%@ page contentType=&#8221;text\/html;charset=UTF-8&#8243; pageEncoding=&#8221;UTF-8&#8243;%&gt; &lt;%@ page import=&#8221;java.util.*&#8221;%&gt; &lt;%! \/** \ud30c\ub77c\ubbf8\ud130 \uac1c\uc218 *\/ public static &hellip; <a href=\"https:\/\/www.hadooh.com\/?p=190\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">sequence parameter query convert to named parameter query<\/span> <span class=\"meta-nav\">&rarr;<\/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":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.hadooh.com\/index.php?rest_route=\/wp\/v2\/posts\/190"}],"collection":[{"href":"https:\/\/www.hadooh.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hadooh.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hadooh.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hadooh.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=190"}],"version-history":[{"count":11,"href":"https:\/\/www.hadooh.com\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions"}],"predecessor-version":[{"id":203,"href":"https:\/\/www.hadooh.com\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions\/203"}],"wp:attachment":[{"href":"https:\/\/www.hadooh.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hadooh.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hadooh.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}