¼Ò¼³°°Àº ÀÚ¹Ù 4ºÎ  Á¦19Àå µ¥ÀÌÅͺ£À̽º  19.8 PreparedStatement  

 

19.8 PreparedStatement

 

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¹øÂ° Àü´ÞÀÎÀÚ °ªÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. .
public void clearParameters() throws SQLExceptiion : ÁغñµÈ ±¸¹®¿¡¼­ ÇöÀçÀÇ ¸ðµç Àü´ÞÀÎÀÚ¸¦ ÇØÁ¦ÇÕ´Ï´Ù. .
public ResultSet executeQuery() throws SQLExceptiion : ÁغñµÈ SQL ÁúÀǸ¦ ½ÇÇàÇϰí ResultSet °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù .
public int executeUpdate() throws SQLExceptiion : PreparedStatement °´Ã¼¿¡ ÀÇÇØ¼­ Ç¥ÇöµÇ´Â ÁغñµÈ SQL INSERT, UPDATE ¶Ç´Â DELETE±¸¹®À» ½ÇÇàÇÕ´Ï´Ù. . º¯°æµÈ ÇàµéÀÇ ¼ö¸¦ ¹ÝȯÇϰųª DLL ±¸¹®À» À§ÇØ 0À» ¹ÝȯÇÕ´Ï´Ù. .



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ
ÀúÀÚ:ÃÖ¿µ°ü