¼Ò¼³°°ÀºJSP2ºÎ  8Àå JDBC¿Í JSP  12 Factory Ȱ¿ë  

 

8.12 Factory Ȱ¿ë

 

¾Õ¿¡¼­ ¼³¸íÇÑ  Factory Ŭ·¡½ºÀÇ ½ÇÁ¦ ¿¹¸¦ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¾Æ·¡ÀÇ ¿¹Á¦´Â µ¥ÀÌÅͺ£À̽º ¿¬°á ½Ã ODBC¸¦ »ç¿ëÇϸé 1À», Oracle¸¦ »ç¿ëÇϸé 2¸¦, MSSQL 2000¿ë µå¶óÀ̹ö¸¦ »ç¿ëÇϸé 3À̶ó´Â °ªÀ» °¡Áö°Ô µË´Ï´Ù. ÀÌ °ªÀ¸·Î µ¥ÀÌÅͺ£À̽ºÀÇ Á¾·ù¸¦ ±¸º°Çϰí ÀÖ½À´Ï´Ù.

 

   Factory¿¡¼­ µ¥ÀÌÅͺ£À̽º ±¸º° »ó¼ö

n       public static final int ODBC = 1;

n       public static final int ORACLE = 2;

n       public static final int MSSQL=3;

 

¿ì¸®°¡ »ç¿ëÇÒ °ÍÀº MSSQLÀ̹ǷΠConnectionFactory.MSSQL  »ó¼ö¸¦ »ç¿ëÇϰڽÀ´Ï´Ù. ±×·³ ¿¹Á¦¸¦ »ìÆì º¸°Ú½À´Ï´Ù.

 

FactoryTest.jsp

Factory Ŭ·¡½º¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦

<%@ page import "java.sql.*, org.jabook.sql.*" contentType= "text/html;charset = euc-kr"%>
<html>
<body> 
<h3>ConnectionFactory Class Test</h3>
<% 
    Connection conn = 
new ConnectionFactory().getConnection(ConnectionFactory.MSSQL); 
    PreparedStatement pstmt = conn.prepareStatement(
"Insert into MyTest values (?,?)");  
    pstmt.setString(
1"www.jabook.org"); 
    pstmt.setInt(
23); 
    pstmt.execute(); 

    Statement stmt = conn.createStatement(); 
    String sql = 
"Select * from MyTest "
    ResultSet rs = stmt.executeQuery(sql); 
%>
    MyTest Å×ÀÌºí¿¡¼­ ResultSet °¡Á®¿À±â<br>
    <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>

ConnectionFactory.java

Factory Ŭ·¡½º

package org.jabook.sql;
import java.sql.*;


public class ConnectionFactory {


  
public static final int ODBC = 1;
  
public static final int ORACLE = 2
;
  
public static final int MSSQL=3
;
  
public ConnectionFactory() {}


  
public Connection getConnection(int dbms)  throws SQLException {
    Connection conn = 
null
;
    
if 
(dbms == ConnectionFactory.ODBC) {
      
try
{
        Class.forName(
"sun.jdbc.odbc.JdbcOdbcDriver"
);
        conn = DriverManager.getConnection(
"jdbc:odbc:dbdsn""id""password"
);
      }
catch 
(ClassNotFoundException cnfe) {
        System.out.println(cnfe);
      }
    } 
else if 
(dbms == ConnectionFactory.ORACLE) {
      
try 
{
        Class.forName(
"oracle.jdbc.driver.OracleDriver"
);
  conn = DriverManager.getConnection(
"jdbc:oracle:thin:@ip_address:port:ORACLE","id""password"
);
      }
catch 
(ClassNotFoundException cnfe) {
        System.out.println(cnfe);
      }      
    } 
else if 
(dbms == ConnectionFactory.MSSQL) {
      
try 
{
          Class.forName(
"com.microsoft.jdbc.sqlserver.SQLServerDriver"
); 
          conn= DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433","novel","jsp"
); 
      }
catch 
(ClassNotFoundException cnfe) {
        System.out.println(cnfe);
      }      
    }
    
return 
conn;
  }
}

C:\jakarta\webapps\MySample\WEB-INF\classes>javac d . ConnectionFactory.java

 

 ¿¹Á¦¿¡¼­ Connection °´Ã¼ connÀ» ¾ò¾î¿À±â À§Çؼ­ ConnectionFactory Ŭ·¡½ºÀÇ  getConnection ¸Þ¼­µå¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù.

 

n       Connection conn =

           new ConnectionFactory().getConnection(ConnectionFactory.MSSQL);

 

getConnection ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§ »ç¿ëÇÒ µ¥ÀÌÅͺ£À̽ºÀÇ °ªÀ» ¸Å°³º¯¼ö·Î ³Ö¾î ÁÖ¾ú½À´Ï´Ù. ConnectionFactory.MSSQL »ó¼ö¸¦ ³Ö¾î ÁÖ¾î, ÀÌ °ªÀ» ºñ±³ÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ±¸º°ÇÏ°Ô µË´Ï´Ù. ConnectionFactory.MSSQL »ó¼ö·Î ±¸º°µÈ µ¥ÀÌÅͺ£À̽º¿¡ ¸Â´Â Class¸¦ ·ÎµùÇϰí, Connection °´Ã¼¸¦ ¾ò°Ô µË´Ï´Ù.

 

n       if (dbms == ConnectionFactory.MSSQL) {

n          try {

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

n              conn= DriverManager.getConnection

("jdbc:microsoft:sqlserver://localhost:1433","novel","jsp");

n          }catch (ClassNotFoundException cnfe) {System.out.println(cnfe); }             

n       }

 

±×¸®°í »ý¼ºµÈ Connection °´Ã¼¸¦ FactoryTest.jsp¿¡ ³Ñ°ÜÁÖ°Ô µË´Ï´Ù.

 

n       return conn;

 

JSP ÆäÀÌÁö´Â ³Ñ°Ü¹ÞÀº Connection °´Ã¼¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷À» ³¡¸¶Ä¡°í, JSP ÆäÀÌÁö ³»¿¡ Connection °´Ã¼¸¦ Á¾·áÇÏ°Ô µË´Ï´Ù. Å©°Ô ¾î·ÆÁö´Â ¾ÊÀ¸¸®¶ó »ý°¢Çϸç Factory Ŭ·¡½º¿Í °°ÀÌ JDBC¿¡¼­ ÀÚÁÖ »ç¿ëµÇ´Â Pooling ±â¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù.



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