PreparedStatement´Â µ¿ÀÏÇÑ query¹®ÀÌ ¿©·¯ ¹ø ¹Ýº¹ÀûÀ¸·Î ¼öÇàµÉ ¶§ ÁÖ·Î »ç¿ëµÇ´Â ÀÎÅÍÆäÀ̽º ÀÔ´Ï´Ù. À̰ÍÀ» ÀÌ¿ëÇϸé SQL¹®ÀåÀÌ ¹Ì¸® ÄÄÆÄÀÏ µÇ¾î PreparedStatement°´Ã¼¿¡ ÀúÀåµÈ ÈÄ parameter·Î °ªÀ» ³Ñ±æ ¼ö Àֱ⠶§¹®¿¡ ÇÁ·Î±×·¥ÀûÀ¸·Î ½±°Ô ÀÎÀÚ¸¦ Àü´ÞÇÒ ¼ö ÀÖ°í ¼öÇà¼Óµµ ¸é¿¡¼ ¾ó¸¶°£ÀÇ À̵æÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. »ç½Ç SQL¹®ÀåÀ» ¸¸µå´Â °ÍÀº ¾ÆÁÖ º¹ÀâÇÑ ÀÛ¾÷ÀÌ µÉ ¼ö Àִµ¥ ÀÌ·¯ÇÑ ÀÛ¾÷À» ÁÙ¿©ÁÖ´Â ¿ªÇÒ ¶ÇÇÑ ÇÕ´Ï´Ù. ±×·³ ¿¹Á¦¸¦ ¸ÕÀú »ìÆìº¸°í Á» ´õ ¾ê±âÇϵµ·Ï ÇϰڽÀ´Ï´Ù. ÀÌ ¿¹Á¦´Â PreparedStatement¸¦ ÀÌ¿ëÇÏ¿© À§¿¡¼ ¸¸µé¾îµÐ Å×ÀÌºí¿¡ 5°³ÀÇ µ¥ÀÌÅ͸¦ insertÇÏ´Â ¿¹Á¦ ÀÔ´Ï´Ù.
PreparedStatementTest.java(PreparedStatement ¿¹Á¦) |
import java.sql.*; public class PreparedStatementTest { public static void main(String[] args) { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:dbdsn", "id", "password"); String sql = "insert MyTest values (?, ?)"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, "È«±æµ¿"); pstmt.setInt(2, 20); pstmt.executeUpdate(); pstmt.setString(1, "¼ºÃáÇâ"); pstmt.setInt(2, 16); pstmt.executeUpdate(); pstmt.setString(1, "À̸ù·æ"); pstmt.setInt(2, 17); pstmt.executeUpdate(); pstmt.setString(1, "½É û"); pstmt.setInt(2, 15); pstmt.executeUpdate(); pstmt.setString(1, "½ÉÇбÔ"); pstmt.setInt(2, 55); pstmt.executeUpdate(); pstmt.close(); con.close(); System.out.println("µ¥ÀÌÅÍ ¾÷µ¥ÀÌÆ® ¿Ï·á!!"); }catch(Exception e) {System.out.println(e);} } } |
C:\JavaExample\19>javac PreparedStatementTest.java C:\JavaExample\19>java PreparedStatementTest µ¥ÀÌÅÍ ¾÷µ¥ÀÌÆ® ¿Ï·á!! |
°á°ú¸¦ º¸¸é µ¥ÀÌÅ͸¦ µ¥ÀÌÅͺ£À̽º¿¡ Àü¼ÛÇÑ ÈÄ ¿Ï·á°¡ µÇ¾ú´Ù°í Ãâ·ÂµË´Ï´Ù. µ¥ÀÌÅͺ£À̽º¸¦ È®ÀÎÇØ º¸½Ã¸é Á¤º¸°¡ µé¾î°£ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. PreparedStatement¸¦ »ç¿ëÇϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ String sqlÀ» »ý¼ºÇϰí PreparedStatement°´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù. ¿©±â¼ ¹°À½Ç¥(?)°¡ ¾ÕÀ¸·Î ³Ö¾îÁÙ °ªÀÇ ÀÚ¸®ÀÎ °ÍÀÔ´Ï´Ù.
n String sql = "insert MyTest values (?, ?)";
n PreparedStatement pstmt = con.prepareStatement(sql);
¾Õ¿¡¼ ÁÖ¾îÁø ¹°À½Ç¥ÀÇ Ã¹Â° ÀÚ¸®¿¡ setStringÀ¸·Î ¡°È«±æµ¿¡±À̶ó´Â °ÍÀ» ³Ö°í, µÎ ¹øÂ° ÀÚ¸®¿¡ setInt·Î 20ÀÇ °ªÀ» ³Ö°í ÀڷḦ insertÇÏ´Â °ÍÀ» ¹Ýº¹ÇÕ´Ï´Ù. ÀÌ·¸°Ô setXXX¸Þ¼µå´Â ¹Ýµå½Ã SQLÀÚ·áÇü°ú ȣȯµÇ´Â ŸÀÔÀ̾î¾ß ÇÕ´Ï´Ù.
n pstmt.setString(1, "È«±æµ¿"); pstmt.setInt(2, 20);
n pstmt.executeUpdate();
PreparedStatement´Â ¿©·¯ ¹ø ¹Ýº¹Çؼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ À̰ÍÀº À̹ÌÁö³ª »ç¿îµå µî, ¹ÙÀ̳ʸ®Å¸ÀÔÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇϱâ À§Çؼµµ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ´õ ÀÌ»ó ÇÊ¿ä ¾øÀ» ¶§¿¡´Â clearParameters()¸¦ È£ÃâÇØ¼ Statement°´Ã¼°¡ ¹Þ¾Æ¿Â °ªÀ» û¼ÒÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢Ñ Prepared Statement |
ÁÖ·Î ¹Ýº¹µÇ´Â Query¹®ÀÌ ¼öÇàµÇ¾îÁú ¶§ »ç¿ëµÇ´Â ÀÎÅÍÆäÀ̽º SQL¹®ÀÇ »çÀü ÄÄÆÄÀÏ·Î ¼öÇà¼Óµµ°¡ ºü¸£´Ù´Â ÀÌÁ¡ÀÌ ÀÖ´Ù. |
PreparedStatementÀÎÅÍÆäÀ̽º ÁÖ¿ä ¸Þ¼µå |
public void setXXX(int n, XXX x) throws SQLExceptiion : XXX ´Â int, double, String, Data °°Àº ÀÚ·áÇüÀ» ÀǹÌÇϸç, x¸¦ n¹øÂ° Àü´ÞÀÎÀÚ °ªÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. . |
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ ÀúÀÚ:ÃÖ¿µ°ü |