¼Ò¼³°°ÀºJSP2ºÎ  8Àå JDBC¿Í JSP  05 JSP¿Í JDBC¿¬µ¿  

 

8.5 JSP¿Í JDBCÀÇ ¿¬µ¿

 

À¥ ÇÁ·Î±×·¡¹Ö¿¡ À־ µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬µ¿Àº »© ³õÀ» ¼ö ¾ø´Â ÇʼöÀûÀÎ °ÍÀÔ´Ï´Ù. ÀÎÅͳÝÀ» »ç¿ëÇϸ鼭 ¸ÞÀÏÀ» ÀÛ¼ºÇϰí, °Ô½ÃÆÇÀ» »ç¿ëÇϰí, ÀڷḦ °Ë»öÇÏ´Â µî, ¿©·¯ºÐµµ ¸ð¸£°Ô µ¥ÀÌÅͺ£À̽º¸¦ ÀÌ¿ëÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ ÀÔÀå¿¡¼­´Â ¸ð¸£´õ¶óµµ ±×³É Àß ÀÌ¿ëÇÏ¸é µÇ°ÚÁö¸¸, ÇÁ·Î±×·¡¸Ó¶ó¸é ±× ¿ø¸®Á¤µµ´Â ÀÌÇØÇÏ°í °¡¾ß µÉ °ÍÀÔ´Ï´Ù. ¾Æ·¡ ±×¸²Àº JDBC¿Í JSPÀÇ ¿¬µ¿¹æ½ÄÀ» ³ªÅ¸³½ °ÍÀÔ´Ï´Ù.

 

±×¸² 8-3 JSP¿Í JDBC

JSPÀÇ ¿ø¸®¸¦ ¹ÙÅÁÀ¸·Î JDBC¿Í DBMS°¡ ´õÇØÁø °ÍÀ̶ó°í º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ¼­¹ö¿¡¼­ JSP/ServletÀ» ÀÌ¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º ÀÛ¾÷À» ó¸®Çϸé, ´ÙÀ½°ú °°Àº ¸î °¡Áö ´ç¿¬ÇÑ ÀåÁ¡µéÀÌ ÀÖ½À´Ï´Ù.

 

n        Ŭ¶óÀ̾ðÆ®Ãø¿¡¼­´Â JDBC µå¶óÀ̹ö¸¦ ´Ù¿î ¹ÞÀ» Çʿ䰡 ¾øÀ½

n        ºê¶ó¿ìÀú´Â ÀÚ¹Ù¸¦ Áö¿øÇÒ Çʿ䰡 ¾øÀ½

n        HTTP¸¦ »ç¿ëÇÑ ÀÚ·áÀÇ ±³È¯À¸·Î ¹æÈ­º® µîÀ» °ÆÁ¤ÇÒ Çʿ䰡 ¾øÀ½

n        Ŭ¶óÀÌ¾ðÆ®´Â µðÀÚÀÎÃø¸é, ¼­¹öÂÊÀº ºñÁö´Ï½º ·ÎÁ÷°ú µ¥ÀÌÅÍ Ãø¸éÀ¸·Î öÀúÈ÷ ³ª´©¾î °ü¸®°¡ ¿ëÀÌ(3 tier)

 

ÀÌÁ¦ JSP¿¡¼­ JDBC¸¦ »ç¿ëÇØ¼­ MS-SQL2000 µ¥ÀÌÅͺ£À̽º ¼­¹ö¿¡ Á¢±ÙÇÏ´Â ¿¹Á¦¸¦ ÀÛ¼ºÇØ º¸°Ú½À´Ï´Ù. ¾ÕÀÇ JDBC ±âº»±¸Çö¿¡¼­ ¸¸µé¾ú´ø ¿¹Á¦¸¦ °ÅÀÇ ±×´ë·Î JSP·Î À̽ÄÇØ º¼ °ÍÀÔ´Ï´Ù. ¹°·Ð JDBC ¿¬°á ºÎºÐÀº ºóÀ¸·Î ó¸®ÇÒ ¼ö ÀÖ´Â ¹æ¹ýµµ ÀÖÁö¸¸ ¿©±â¼­´Â º¸´Ù Á÷°üÀûÀÌ°í ºÐ¸íÇÏ°Ô º¸¿©ÁÖ±â À§Çؼ­ JSP ÆäÀÌÁö ÀÚü¿¡¼­ ¸ðµç °ÍÀ» ó¸®ÇÏ¿´½À´Ï´Ù.

 

JspJdbcTest.jsp

JSP/JDBC ¿¬µ¿ ¿¹Á¦

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page import="java.sql.*"%> 
<html><body>
<h3>JDBC/JSP ¿¬µ¿ Å×½ºÆ® </h3>
<hr>
<%
  String url = "jdbc:microsoft:sqlserver://localhost:1433";
  String id = "novel";
  String pass = "jsp";

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
    Connection conn = DriverManager.getConnection(url,id,pass); 
   PreparedStatement pstmt = conn.prepareStatement("Insert into MyTest values (?,?)");  
    pstmt.setString(1"hong"); 
    pstmt.setInt(229); 
    pstmt.execute(); 

    Statement stmt = conn.createStatement(); 
    String sql = "Select * from MyTest "
    ResultSet rs = stmt.executeQuery(sql);   
%>
<table border = "1" cellspacing="0" cellpadding="1">
  <tr bgcolor = "pink">
    <td><b>name</b></td>
    <td><b>age</b></td>
  </tr>
<%
    while(rs.next()){ 
%> <tr>
    <td><%=rs.getString(1)%></td>
    <td><%=rs.getInt(2)%></td>
   </tr>
<%
  } 
    rs.close(); 
    stmt.close(); 
    conn.close(); 
%>
</table>
</body></html>

 

¾ÕÀÇ ¿¹Á¦¿Í º°·Î ´Ù¸¦ °ÍÀÌ ¾ø½À´Ï´Ù. ´ÜÁö ¿©±â¼­´Â Å×À̺íÀ» »ý¼ºÇÏ´Â °úÁ¤Àº »ý·«Çϰí, À§¿¡¼­ ¸¸µç MyTest Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ Çϳª ´õ »ðÀÔÇÑ ÈÄ ´Ù½Ã ¸ðµç µ¥ÀÌÅ͸¦ ºÒ·¯¿À´Â ÀÛ¾÷À» ÇÏ¿´½À´Ï´Ù.  ¼Ò½º³»¿ëµµ Å©°Ô ´Þ¶óÁø Á¡Àº ¾øÁö¸¸ ¿¬°á °úÁ¤À» Çѹø ´õ »ìÆìº¸½Ã°í,  JSP ÆäÀÌÁö¿¡ ¸Â°Ô HTMLºÎºÐÀÇ ÀÛ¾÷¿¡ ½Å°æ ¾´ ºÎºÐµµ ´« ¿©°Ü º¸½Ã±â ¹Ù¶ø´Ï´Ù. ±×·³ ¼Ò½º¸¦ »ìÆìº¸°Ú½À´Ï´Ù.

 

JDBC¸¦ ÀÌ¿ëÇϱâ À§Çؼ­ java.sql ÆÐŰÁö¸¦ importÇϰí ÀÖ½À´Ï´Ù.

 

n        <%@ page import="java.sql.*"%>

 

SQLServerDriver JDBC µå¶óÀ̹ö¸¦ Class.forName ¸Þ¼­µå¸¦ ÅëÇØ¼­ ·Îµù½Ãŵ´Ï´Ù.

 

n        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

 

DriverManager·ÎºÎÅÍ Connection °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.

 

n        Connection conn = DriverManager.getConnection(url,id,pass);

 

Connection °´Ã¼ connÀ¸·ÎºÎÅÍ Statement °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù. Statement °´Ã¼´Â µ¥ÀÌÅͺ£À̽º¿¡ ÁúÀǸ¦ Çϰųª ÀÛ¾÷¸í·ÉÀ» Àü´ÞÇϴµ¥ »ç¿ëµË´Ï´Ù.

 

n        Statement stmt = conn.createStatement();

 

PreparedStatementÀÇ °´Ã¼ pstmt¸¦ »ý¼ºÇÕ´Ï´Ù.

 

n        PreparedStatement pstmt = conn.prepareStatement("Insert into MyTest values (?,?)");

 

PreparedStatement Ŭ·¡½ºÀÇ ¸Þ¼­µåÀÎ setString°ú setInt¸¦ »ç¿ëÇØ¼­ µ¥ÀÌÅ͸¦ »ðÀÔÇÕ´Ï´Ù.

 

n        pstmt.setString(1, "hong");

n        pstmt.setInt(2, 29);

n        pstmt.execute();

 

ResultSetÀÇ °´Ã¼ rs¸¦ »ý¼ºÇÕ´Ï´Ù.

 

n        ResultSet rs = stmt.executeQuery(sql); 

 

 °á°ú¸¦ HTML ÆäÀÌÁö·Î ÀûÀýÈ÷ Ãâ·ÂÇÏ¿© ÁÝ´Ï´Ù.

 

n        while(rs.next()){

n        %> <tr>

n                                   <td><%=rs.getString(1)%></td>

n                                   <td><%=rs.getInt(2)%></td>

n           </tr>

n        <%

n                     }

 

¸¶Áö¸·À¸·Î ResultSet, PreparedStatement, Statement¿Í ConnectionÀÇ °´Ã¼µéÀ» ¼ø¼­´ë·Î ´Ý¾Æ ÁÝ´Ï´Ù.

 

n        rs.close();

n        pstmt.close();

n        stmt.close();

n        conn.close();

 

ÀÌ·¸°Ô JSP¿¡¼­ÀÇ JDBC ¿¬µ¿µµ ¾îÇø®ÄÉÀ̼ǿ¡¼­ÀÇ ¿¬µ¿°ú Å©°Ô ´Ù¸¦ °ÍÀÌ ¾ø½À´Ï´Ù. JSP´Â ¼­ºí¸´À¸·Î º¯È¯µÇ¾î ½ÇÇàµÇ´Ï ´ç¿¬ÇÑ °á°ú¶ó°í ÇÒ ¼ö ÀÖ°ÚÁÒ. ÇÏÁö¸¸, JSP¿¡¼­ µðÀÚÀκκаú ºñÁö´Ï½º ·ÎÁ÷ ±¸Çö ºÎºÐÀ» ³ª´©°í, µ¥ÀÌÅͺ£À̽º¸¦ °øÀ¯Çؼ­ ¿©·¯ °÷¿¡¼­ »ç¿ëÇÏ·Á¸é, JDBC¿¡ °üÇÑ ºÎºÐÀº ºóÀ¸·Î ¸¸µé¾î »ç¿ëÇÏ´Â °ÍÀÌ º¸´Ù ÁÁÀ» °ÍÀÔ´Ï´Ù. À̰Ϳ¡ ´ëÇØ¼­´Â µÚ¿¡ »ìÆìº¸°í ´ÙÀ½ Àý¿¡¼­´Â JDBC ±¸Çö°úÁ¤À» ºÐÇØÇØ¼­ Çϳª¾¿ ¼ø¼­´ë·Î »ìÆìº¸°Ú½À´Ï´Ù.



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