Á¦¸ñ : [¹®ÀÇ] ¾Æ·¡¹®ÀÇ¿¡ ´ëÇÑ Ãß°¡ Áú¹® ±Û¾´ÀÌ: ±Ã±ÝÀÌ(guest) 2004/10/01 18:22:35 Á¶È¸¼ö:3808 ÁÙ¼ö:98 |
|
¿î¿µÀÚ´ÔÀÌÇÏ ¸¹Àº ºÐµéÀÌ ´äº¯À» ÇØÁּż ¹«Ã´ °¨»çµå¸³´Ï´Ù.
Á¦°¡ ¿î¿µÇϰí ÀÖ´Â »çÀÌÆ®ÀÇ ÀÏ Á¢¼Ó°Ç¼ö´Â ¾à 30¸¸°Ç Á¤µµÀÔ´Ï´Ù.
ÀÌ¿ø¿µ´ÔÀÇ Á¶¾ð´ë·Î jbdcµå¶óÀ̹ö¸¦ ¾÷±×·¹À̵带 Çß½À´Ï´Ù.
DB¸¦ 8.1.7.4¸¦ ¾²°í Àִµ¥ ¾ÆÁ÷µµ 8.1.6¹öÀüÀÇ jdbc¸¦ ¾²°í ÀÖ´õ¶ó±¸¿ä
±×·¡¼ À̹ø¿¡ ¾÷±×·¹À̵带 Çߴµ¥, ÇöÀç µ¿ÀÏÇÑ Çö»óÀº Àç¹ßÇϰí ÀÖÁö´Â ¾ÊÁö¸¸
°è¼Ó ¸ð´ÏÅ͸µÀ» Çϰí ÀÖ´Â ÁßÀÔ´Ï´Ù.
¿©·¯ºÐµéÀÌ ´Ù¸¥ºÎºÐ¿¡ ´ëÇÑ ¹®Á¦Á¡À» Á¦±âÇϼż À̹øÂü¿¡ ÀúÈñÂÊ ¾ÆÅ°ÅØÃÄ¿¡ ´ëÇØ
¿©·¯ºÐµéÀÇ Á¶¾ðÀ» ¾ò°íÀÚ ÇÕ´Ï´Ù. WAS°¡ µµÀԵǾî ÀÖÁö¸¸ EJB·Î ±¸ÇöµÇ¾î ÀÖÁö
¾Ê½À´Ï´Ù. 2000³âµµ¿¡ °³¹ßµÈ »çÀÌÆ®¶ó ¾ÆÅ°ÅØÃĶó°í Çϱ⵵ ¹¹ ÇÕ´Ï´Ù.
³»ÈijâÂë Àç °³¹ß¿¡ µé¾î°¥ ¿¹Á¤ÀÔ´Ï´Ù.
jsp -> javaBean -> ConnectionPool -> DB ·Î ±¸¼ºµÇ¾î ÀÖ°í
»ç¾çÀº ¾Æ·§±Û°ú µ¿ÀÏÇÕ´Ï´Ù.
À̶§ javaBeanÀÌ °¢ ¼ºñ½ºº°·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, ¾à 100°³Á¤µµ°¡ ÀÖ´Ù°í °¡Á¤ÇÕ´Ï´Ù.
¾Æ·¡´Â javaBeanÀÇ ¼ÀÇà ÆÄÀÏÀÔ´Ï´Ù.
staticÇÏ°Ô ConnectionPool ÀνºÅϽº¸¦ ¾ò¾î »ç¿ëÇϰí ÀÖ½À´Ï´Ù.
public class xxxx{
private static ConnectionPool conPool;
static {
try {
conPool = ConnectionPool.getInstance();
} catch (Exception e) {}
}//end of static
public static HashMap Select_info(String zipcode) throws CustomerException{
// connection ¼±¾ð
// statement->PreparedStatement
// Resultset
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
// Äõ¸® ¼±¾ð
// HashMap ¼±¾ð
StringBuffer buf = new StringBuffer();
HashMap hsm = new HashMap();
List xxxx = new ArrayList();
buf .append(" select xxxx from xxx ")
.append(" where xxx = ? ");
try{
con = conPool.getConnection();
pstmt = con.prepareStatement(buf.toString());
pstmt.clearParameters();
pstmt.setString(1,zipcode);
rs = pstmt.executeQuery();
while(rs.next()){
edps_a .add (fixNull(rs.getString("edps_a")));
}
} catch (SQLException se) {
Logger.err.println(se.getMessage());
throw new CustomerException(CommonError.getUserMsg(se));
} catch (Exception e) {
Logger.err.println(e.getMessage());
throw new CustomerException(e.getMessage());
} finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (con != null) conPool.freeConnection(con);
} catch (SQLException se) {}
}//end of finally
hsm.put("edps_a",edps_a);
return hsm;
}// end of Select_info()
}
¿©±â¼ ±Ã±ÝÇÑÁ¡Àº ù ¹®Àå°ú °°ÀÌ staticÀ¸·Î connectionPoolÀÇ ÀνºÅϽº¸¦ °¡Á®¿ÂµÚ
°¢ ÇÔ¼ö¿¡¼ °øÀ¯Çؼ ÀνºÅϽº¸¦ ¾²°Ô µÇ´Âµ¥, ÀÌ·¸°Ô Çϴ°Ͱú °¢ ÇÔ¼ö¿¡¼ °¢°¢
connectionPoolÀÇ ÀνºÅϽº¸¦ °¡Á®¿Í¼ »ç¿ëÇÏ´Â °Í°úÀÇ Â÷ÀÌÀÔ´Ï´Ù.
¼º´É»ó¿¡ ¾î¶² Â÷À̰¡ ÀÖÀ»±î¿ä? ¶ÇÇÑ ¾Æ·¡¿¡ Á¦°¡ ¿Ã¸° ´ýÇÁ¿Íµµ ÀÌ·¯ÇÑ ±¸Á¶°¡ ¿µÇâ
ÀÌ ÀÖ´ÂÁö ±Ã±ÝÇÕ´Ï´Ù.
¿©·¯ °í¼ö´ÔµéÀÇ ÀǰßÀ» µè°í ½Í½À´Ï´Ù.
|
Á¦¸ñ : Re: °áÁ¤Çϱ⠾ָÅÇÑ ºÎºÐÀ̱º¿ä. ±Û¾´ÀÌ: »ç¶ûÀüÀï(lovewar) 2004/10/05 09:04:27 Á¶È¸¼ö:3743 ÁÙ¼ö:62 |
|
Connection PoolÀ» °¢ JavaBean¿¡¼ class variable·Î ¼³°è¸¦ Çϴ³Ä?
¾Æ´Ï¸é, °¢ JavaBeanÀÇ ¸Þ¼Òµå³»¿¡¼ Á÷Á¢ Á¢±ÙÇϰԲû ¼³°è¸¦ Çϴ³Ä?
Connection PoolÀÌ Singleton PatternÀ̶ó´Â °¡Á¤ÇÏ¿¡
µÎ°¡Áö °üÁ¡(¸Þ¸ð¸®, ¼Óµµ)¿¡ ´ëÇØ¼ ³íÀÇÇØ ºÁ¾ß ÇÕ´Ï´Ù.
VMÀÇ ¹®¼(½ºÆå)À» ÅëÇØ¼ ³íÀÇÇϸç. ÇöÀç VM ½ºÆåÀÇ ¹®¼¸¦ º¼ ½Ã°£ÀÌ ¾ø¾î ¹æ¹ý¸¸
±â¼úÇÕ´Ï´Ù.
Class Variable(static field)·Î ¼±¾ðÇßÀ»½Ã ¸Þ¸ð¸® ¹èÁ¤¿©ºÎ¿Í ÀÌÀÇ Á¢±Ù¹æ¹ý,
±×¸®°í Local Variable ¶Ç´Â ¸Þ¼Òµå³»¿¡¼ Á÷Á¢ Á¢±Ù½Ã ¹ß»ýÇÏ´Â ¸Þ¸ð¸®¿Í ÀÌÀÇ Á¢±Ù¹æ¹ý
¿¡ ´ëÇØ¼ VMÀÌ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö¸¦ ÀÎÁöÇÏ¼Å¾ß ÇÕ´Ï´Ù.
ÀÌ µÎ°¡Áö¸¦ ºñ±³ÇÏ¿© º¸¸é µÇ´Âµ¥, °³ÀÎÀû °üÁ¡¿¡¼´Â ºñµîºñµîÇÒ °ÍÀ¸·Î º¸ÀÔ´Ï´Ù.
ÀϹÝÀûÀÎ °üÁ¡¿¡¼ º¸¸é staticÀ¸·Î »ç¿ëÇϸé, ¼Óµµ´Â ºü¸¥ ¹Ý¸é, ¸Þ¸ð¸®¸¦ Ç׽à Á¡À¯Çϰí
Àִٴ°ÍÀÌ ¸¾¿¡ °É¸±°ÍÀÔ´Ï´Ù. ±× ¹Ý´ëÀÇ °æ¿ìµµ µ¿ÀÏÇÒ°ÍÀ¸·Î º¸ÀÔ´Ï´Ù.
±×·¡¼ ¼Óµµ°üÁ¡À» °í·ÁÇϴ³Ä, ¾Æ´Ï¸é ¸Þ¸ð¸®°üÁ¡À» º¸´À³Ä¿¡ µû¶ó ¼³°èÀÇ À¯µ¿¼ºÀÌ
ÀÖÀ»°Í °°½À´Ï´Ù.
±¸Á¶ÀÇ ¿µÇâÀº
...
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (con != null) conPool.freeConnection(con);
} catch (SQLException se) {
// ·Î±× ±â·Ï
}
º¸´Ù´Â
try {
if (rs != null) rs.close();
} catch (SQLException se) {
// ·Î±× ±â·Ï
}
try {
if (pstmt != null) pstmt.close();
} catch (SQLException se) {
// ·Î±× ±â·Ï
}
try {
if (con != null) conPool.freeConnection(con);
} catch (SQLException se) {
// ·Î±× ±â·Ï
}
ÀÌ·¸°Ô ±â¼úÇÏ¸é ³Ê¹« ±æ¾î Áö±â¶§¹®¿¡
try { if (rs != null) rs.close(); } catch (SQLException se) { }
try { if (pstmt != null) pstmt.close(); } catch (SQLException se) { }
try { if (con != null) conPool.freeConnection(con); } catch (SQLException se) { }
ÀÌ·¸°Ô °£·«ÇÏ°Ô »ç¿ëÇÕ´Ï´Ù.
¿Ö ÀÌ·¸°Ô °³º°ÀûÀ¸·Î try-catchÀýÀ» »ç¿ëÇØ¾ß ÀÚ¿øÀ» ÇØÁ¦ÇÏ´Â °úÁ¤¿¡¼ ¹ß»ýÇÏ´Â
ExceptionÀ» ó¸®Çϰí, Á¤»óÀûÀ¸·Î ¸ðµç ÀÚ¿øÀ» ÇØÁ¦ÇØ ÁÙ¼ö ÀÖ´Ù´Â °Ì´Ï´Ù.
-- µ¡ºÙÀÌ´Â ±Û --
¿À¶óŬÀÇ JDBC µå¶óÀ̹ö¿¡ ´ëÇÑ ¾Ë·ÁÁø ¹®Á¦Á¡µéÀ̳ª ¹ö±× ÆÐÄ¡µé¿¡ ´ëÇÑ ¹®¼µµ
Âü°íÇϽøé ÁÁ°Ú½À´Ï´Ù.
²À ÇÊ¿äÄ¡ ¾Ê´Â static ¸Þ¼Òµå´Â »ç¿ëÀ» ÀÚÁ¦ÇÏ´Â °ÍÀÌ ÁÁ°Ú½À´Ï´Ù.
|
Á¦¸ñ : Re: »ç¼ÒÇѰÅÁö¸¸.. ±Û¾´ÀÌ: ¼Õ´Ô(guest) 2004/10/06 13:51:15 Á¶È¸¼ö:3660 ÁÙ¼ö:16 |
|
try { if (rs != null) rs.close(); } catch (SQLException se) { }
try { if (pstmt != null) pstmt.close(); } catch (SQLException se) { }
try { if (con != null) conPool.freeConnection(con); } catch (SQLException se) { }
À§ÀÇ ±¸¹®Àº
if (rs != null) try { rs.close(); } catch( SQLException ignored) {}
if (pstmt != null) try { pstmt.close(); } catch( SQLException ignored) {}
if (con != null) try { con.close(); } catch( SQLException ignored) {}
À̿Ͱ°ÀÌ ¾²´Â°Ô ³ºÁö ¾ÊÀ»±î¿ä ^^
±×¸®°í °³ÀÎÀûÀÎ °æÇèÀÌÁö¸¸, indirection Àº Á¦ °ªÀ» ÇÏ´Â°Í °°½À´Ï´Ù.
staticÀÇ »ç¿ëÀº óÀ½¿£ Æí¸®ÇÏ°Ô ´Ù°¡¿ÀÁö¸¸, Ŭ·¡½º°¡ ¸¹¾ÆÁú¼ö·Ï
±¸Á¶°¡ º¹ÀâÇØÁú¼ö·Ï ³ªÁß¿¡´Â Á¦¾àÀÌ ´õ Ä¿Áö´Â°Í °°½À´Ï´Ù.
|
|