ÀϹÝÀûÀÎ JDBC ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ìÆìº¸¸é, Å©°Ô JDBCµå¶óÀ̹ö¸¦ »ç¿ëÇØ¼ µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ºÎºÐ°ú ±× Ä¿³Ø¼ÇÀ» ÅëÇØ¼ µ¥ÀÌÅͺ£À̽º ÀÛ¾÷À» ¼öÇàÇÏ´Â ºÎºÐÀ¸·Î ³ª´©¾î Áý´Ï´Ù. µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ºÎºÐÀº JDBCµå¶óÀ̹ö¸¦ ·ÎµùÇϰí, ·Îµù µÈ µå¶óÀ̹ö·ÎºÎÅÍ ½ÇÁ¦ Ä¿³Ø¼ÇÀ» ¸¸µå´Â °úÁ¤À¸·Î ³ª´©¾î Áý´Ï´Ù. ¾Æ·¡ ¿¹Á¦´Â JDBCµå¶óÀ̹ö¸¦ »ç¿ëÇØ¼ µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ºÎºÐÀÔ´Ï´Ù.
JDBCµå¶óÀ̹ö¸¦ »ç¿ëÇØ¼ µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ¿¹Á¦ |
¡¦ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:dbdsn","id","password"); } catch(ClassNotFoundException cnfe) { ¡¦ } catch(SQLException sqle) { ¡¦ } ¡¦ |
±½Àº ±Û¾¾·Î Ç¥ÇöÇÑ ºÎºÐÀº ¾ÖÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÏ´Â DBMS³ª JDBCµå¶óÀ̹ö¿¡ µû¶ó ´Þ¶óÁö´Â ºÎºÐµéÀÔ´Ï´Ù. ¿¹¸¦ µé¾î À§ ¿¹Á¦¿¡¼ ODBC¿ë µå¶óÀ̹ö ´ë½Å¿¡, Oracle¿¡¼ Á¦°øÇÏ´Â JDBC thin µå¶óÀ̹ö¸¦ »ç¿ëÇÑ´Ù¸é, "sun.jdbc.odbc.JdbcOdbcDriver" ´ë½Å "oracle.jdbc.driver.OracleDriver"¸¦ ·ÎµùÇØ¾ß Çϰí, DriverManager.getConnection()¸Þ¼µå¸¦ »ç¿ëÇÒ ¶§µµ À§ ¿¹Á¦¿Í´Â ´Ù¸¥ Çü½ÄÀÇ URLÀ» »ç¿ëÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ¸»Àº, ¿©·¯ºÐÀÌ ¸¸µç JDBC ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¼ºñ½º µÇ´Â ȯ°æ¿¡ µû¶ó Äڵ尡 ¸Å¹ø ¼öÁ¤µÇ¾î¾ß Çϰí, ´Ù½Ã ÄÄÆÄÀÏ µÇ¾î¾ß ÇÑ´Ù´Â ¾ê±â ÀÔ´Ï´Ù.
ÀÌó·³, ¼ºñ½º µÇ´Â ȯ°æ°ú ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸ÇöÀÌ ¹¿© ÀÖ´Â °ÍÀ» Ä¿Çøµ(coupling) µÇ¾îÀÖ´Ù¶ó°í ÇÕ´Ï´Ù. Ä¿ÇøµÀÇ Á¤µµ°¡ ³ôÀ»¼ö·Ï ¾ÖÇø®ÄÉÀ̼ÇÀº ¹ü¿ë¼ºÀ» ÀÒ°í, µ¥ÀÌÅͺ£À̽º °°Àº Ư¼öÇÑ È¯°æ¿¡ Á¾¼ÓÀûÀÌ°Ô µË´Ï´Ù. »Ó¸¸ ¾Æ´Ï¶ó, µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ºÎºÐÀº ClassNotFoundException À̳ª SQLException °°Àº ¿¹¿Ü»óȲ¿¡ ´ëÇÑ Ã³¸®¿¡µµ ½Å°æÀ» ½áÁà¾ß ÇÕ´Ï´Ù. Ä¿³Ø¼ÇÀ» ¾ò¾î¿Ã ¶§¸¶´Ù ÀÌ·¸°Ô ¿¹¿Ü 󸮸¦ ÇØÁà¾ß ÇÑ´Ù¸é Àüü Äڵ嵵 º¹ÀâÇØÁö°í, ±×¸¸Å ¿¡·¯°¡ ¹ß»ýÇÒ È®·üµµ ³ô¾ÆÁú °ÍÀÔ´Ï´Ù.
¢Ñ coupling |
ÇϳªÀÇ ¼ÒÇÁÆ®¿þ¾î¸¦ ±¸¼ºÇÏ´Â °¢°¢ÀÇ ¸ðµâ »çÀÌ¿¡ Á¸ÀçÇÏ´Â ÀÇÁ¸µµ. ÀϹÝÀûÀ¸·Î µÎ °³ÀÇ ¸ðµâ »çÀÌ¿¡ ÀÇÁ¸µµ°¡ ³ôÀ»¼ö·Ï Ä¿ÇøµÀÌ °Çϰųª ³ô´Ù°í Çϴµ¥, Ä¿ÇøµÀÌ ¾àÇÒ¼ö·Ï ¼ÒÇÁÆ®¿þ¾î ¸ðµâÀÌ Àß ¼³°èµÇ¾ú´Ù°í ÇÑ´Ù. |
¿ì¸®´Â µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ºÎºÐ°°ÀÌ Ä¿ÇøµÀÌ ³ô°í ¿¹¿Ü󸮿¡ ¹Î°¨ÇÑ ÄÚµåµéÀ» Àüü ¾ÖÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ µû·Î ¶¼¾î ³»´Â ¹æ½ÄÀ» »ç¿ëÇÔÀ¸·Î½á Àüü ¾ÖÇø®ÄÉÀ̼ÇÀÇ À̽ļºÀ» ³ôÀÌ°í ¿¡·¯°¡ ¹ß»ýÇÒ È®·üÀ» ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. Áï, µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ¸ðµç °úÁ¤À» Àü´ãÇÏ´Â µµ±¸Çü Ŭ·¡½º¸¦ µû·Î ¸¸µé¾î¼, ÇÊ¿äÇÒ ¶§ ¸¶´Ù ±× Ŭ·¡½º¿¡°Ô Ä¿³Ø¼ÇÀ» ¸¸µé¾î ´Þ¶ó°í ¿äûÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Å¬·¡½º¸¦ ¡°Æ¯Á¤ °´Ã¼¸¦ ¸¸µé¾î Áش١± ÇÏ¿© ¡®ÆÑÅ丮(Factory : °øÀå) Ŭ·¡½º¶ó¡¯°í ºÎ¸¨´Ï´Ù. ´ÙÀ½ ±×¸²Àº ÆÑÅ丮 Ŭ·¡½ºÀÇ »ç¿ë ¿¹ÀÔ´Ï´Ù.
±×¸² 19‑8 ConnectionFactory·ÎºÎÅÍ ConnectionÀ» ¿äÃ»ÇØ¼ ¾ò¾î¿À´Â ºÎºÐ
µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ºÎºÐ¿¡ ÆÑÅ丮 Ŭ·¡½º¸¦ »ç¿ëÇÔÀ¸·Î½á ¿ì¸®°¡ ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡Àº ´ÙÀ½°ú °°½À´Ï´Ù.
n ¾ÖÇø®ÄÉÀ̼ÇÀÌ DBMS³ª JDBCµå¶óÀ̹ö¿¡ ´ëÇØ µ¶¸³ÀûÀ¸·Î ÀÛµ¿
n ¿¹¿Ü ó¸® °°Àº ºÎºÐÀ» ½Å°æ ¾²Áö ¾ÊÀ½À¸·Î½á, ½ÇÁ¦ ¼ºñ½º ÇÏ´Â ºÎºÐ¿¡¸¸ ÁýÁßÇÒ ¼ö ÀÖÀ½
n ÆÑÅ丮 Ŭ·¡½º¸¦ ´Ù¸¥ ÆÀ°ú °øÀ¯ÇÔÀ¸·Î½á, Çù·Â ÀÛ¾÷ ½Ã À¯¸®
n ¾ÖÇø®ÄÉÀ̼ÇÀÇ À¯Áö, º¸¼ö ¿ëÀÌ
À̹ø Àý¿¡¼´Â ½ÇÁ¦·Î µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¸¸µé¾î ÁÖ´Â ConnectionFactory¶ó´Â °£´ÜÇÑ ÆÑÅ丮 Ŭ·¡½º¸¦ ¸¸µé¾î º¸¸é¼ À§¿¡¼ ¼³¸íÇÑ ÀåÁ¡µéÀÌ ¾î¶² Àǹ̸¦ °¡Áö´ÂÁö »ìÆìº¸°Ú½À´Ï´Ù.
ConnectionFactoryŬ·¡½ºÀÇ ÁÖµÈ ¿ªÇÒÀº µ¥ÀÌÅͺ£À̽º¿¡ Ä¿³Ø¼ÇÀ» ¸¸µé±â À§ÇÑ ¼¼ºÎ ±¸ÇöÀ» °¨ÃçÁÖ°í, Ä¿³Ø¼ÇÀ» ¿äûÇÑ ClientŬ·¡½º¿¡°Ô Ãß»óÈµÈ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦·Î ¿ì¸®°¡ ¸¸µé ConnectionFactoryŬ·¡½º´Â JDBCµå¶óÀ̹öÀÇ ·ÎµùÀ̳ª DriverManagerŬ·¡½ºÀÇ getConnection()¸Þ¼µå¸¦ È£ÃâÇÏ´Â ÀÏ, ¿¹¿Ü ó¸® µî°ú °°Àº ÀϵéÀ» Á÷Á¢ ó¸®ÇØ ÁÖ°í, Client Ŭ·¡½º¿¡°Ô´Â getConnection()À̶ó´Â ¸Þ¼µå Çϳª¸¸À» È£ÃâÇÏ¸é µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾òÀ» ¼ö ÀÖµµ·Ï Ãß»óÈµÈ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½Àº °£´ÜÇÑ ConnectionFactoryŬ·¡½ºÀÇ ÄÚµå ÀÔ´Ï´Ù.
ConnectionFactory.java(ÆÑÅ丮 Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ´Â ¿¹) |
import java.sql.*; public class ConnectionFactory { public ConnectionFactory() {} public Connection getConnection() throws SQLException { Connection conn = null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:dbdsn", "id", "password"); } catch (ClassNotFoundException cnfe) { System.out.println(cnfe); } return conn; } } |
C:\JavaExample\19> javac ConnectionFactory.java |
ConnectionFactoryŬ·¡½º¿¡ ±¸ÇöµÇ¾î ÀÖ´Â getConnection()¸Þ¼µåÀÇ ³»¿ëÀ» º¸½Ã¸é, ¿ì¸®°¡ ÀÌÀü¿¡ µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À±â À§ÇØ ¼öÇàÇß´ø °úÁ¤µéÀÌ ±×´ë·Î ±¸ÇöµÇ¾î ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º ¸¸À¸·Î´Â ÆÑÅ丮 Ŭ·¡½º°¡ º°°Å ¾Æ´Ï¶ó°í »ý°¢ ÇÏ½Ç ¼öµµ ÀÖ½À´Ï´Ù. ÆÑÅ丮 Ŭ·¡½ºÀÇ ÀåÁ¡À» ¾Ë¾Æ º¸±â À§ÇØ, ÀÌ ÆÑÅ丮 Ŭ·¡½º¸¦ »ç¿ëÇÒ ClientŬ·¡½º¸¦ ÀÛ¼ºÇØ º¸°Ú½À´Ï´Ù.
ClientClass.java(ÆÑÅ丮 Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¿¹Á¦) |
import java.sql.*; public class ClientClass { public static void main(String[] args) throws SQLException { Connection conn = new ConnectionFactory().getConnection(); if (conn != null) { Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM MyTest"); rs.close(); stmt.close(); conn.close(); } } } |
C:\JavaExample\19> javac ClientClass.java C:\JavaExample\19>java ClientClass |
ÇöÀç´Â ¾Æ¹«°Íµµ Ãâ·ÂÇÏÁö ¾Ê½À´Ï´Ù. ´ÜÁö ClientŬ·¡½º°¡ µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ºÎºÐÀ» ÁýÁßÇØ ÁֽʽÿÀ. ÀÌÀüÀÇ JDBC¸¦ »ç¿ëÇÑ ¿¹Á¦µé¿¡¼ º¹ÀâÇÑ °úÁ¤À» °ÅÃÆ´ø °Í°ú´Â ´Þ¸®, ´ÙÀ½°ú °°ÀÌ ¸Þ¼µå È£Ãâ ÇѹøÀ¸·Î Ãß»óÈ µÇ¾î ÀÖ½À´Ï´Ù.
n new ConnectionFactory().getConnection();
ClientŬ·¡½º´Â ´ÜÁö ConnectionFactoryŬ·¡½ºÀÇ getConnection()¸Þ¼µå¸¦ È£ÃâÇÔÀ¸·Î½á, µ¥ÀÌÅͺ£À̽º ó¸® ÀÛ¾÷¿¡¸¸ ÁýÁßÇÒ ¼ö ÀÖ½À´Ï´Ù. óÀ½¿¡ Á¦½ÃÇß´ø ¹®Á¦·Î µ¹¾Æ°¡¼, ¿ì¸®ÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÏ´Â µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛÀÌ º¯°æµÇ¾ú°Å³ª JDBCµå¶óÀ̹öÀÇ Á¾·ù°¡ º¯°æµÇ¾ú´Ù°í °¡Á¤ÇØ º¾½Ã´Ù. ConnectionFactoryŬ·¡½º¸¦ »ç¿ëÇØ¼ ÀÛ¼ºµÈ ClientŬ·¡½º´Â Á¶±ÝÀÇ º¯°æµµ °¡ÇØÁú Çʿ䰡 ¾ø½À´Ï´Ù. ´ÜÁö, ConnectionFactoryŬ·¡½ºÀÇ getConnection()¸Þ¼µå¸¸ÀÌ ÀϺΠº¯°æµÉ »ÓÀÔ´Ï´Ù.
¸¸¾à µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ Ä¿³Ø¼ÇÀ» ¾ò¾î¿Í »ç¿ëÇÏ´Â ClientŬ·¡½ºµéÀÇ ¼ö°¡ ¸¹¾Ò´Ù°í »ý°¢ÇØ º¾½Ã´Ù. ÀÌ °æ¿ì, ConnectionFactoryŬ·¡½º°¡ Á¦°øÇÏ´Â Ãß»óÈµÈ ÀÎÅÍÆäÀ̽º´Â ´õ¿í ºûÀ» ¹ßÈÖÇÕ´Ï´Ù. ConnectionFactoryŬ·¡½º¸¦ »ç¿ëÇÏÁö ¾ÊÀº °æ¿ì, µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¾ò¾î¿À´Â ¸ðµç Ŭ·¡½ºµéÀ» ÀÏÀÏÀÌ ¼öÁ¤ÇØÁà¾ß ÇÏ´Â ¹Ý¸é, ConnectionFactoryŬ·¡½º¸¦ »ç¿ëÇßÀ» ¶§´Â ´ÜÁö, ConnectionFactoryŬ·¡½º¸¸ Á¶±Ý ¼Õº¸¸é µË´Ï´Ù. ÀÌ·¯ÇÑ Á¡Àº ±Ô¸ð°¡ Å« ÇÁ·ÎÁ§Æ®¸¦ °³¹ßÇϱâ À§ÇØ ¿©·¯ »ç¶÷°ú ÇÔ²² Çù·Â ÀÛ¾÷À» ÇÒ ¶§, Áß¾Ó ÁýÁßÇüÀÇ À¯Áö, º¸¼ö¸¦ °¡´ÉÇÏ°Ô ÇØÁÝ´Ï´Ù.
ConnectionFactory Ŭ·¡½º°¡ ³Ê¹« ´Ü¼øÇÏ´Ù°í »ý°¢ÇÏ´Â »ç¶÷µéÀ» À§Çؼ, ¿©·¯ Á¾·ùÀÇ JDBCµå¶óÀ̹ö¸¦ »ç¿ëÇØ¼ µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¸¸µé¾î ÁÖ´Â È®ÀåµÈ ConnectionFactoryŬ·¡½º¸¦ ¸¸µé¾î º¸°Ú½À´Ï´Ù. È®ÀåµÈ ConnectionFactoryŬ·¡½º´Â ClientŬ·¡½º°¡ getConnection()¸Þ¼µå¸¦ È£ÃâÇÒ ¶§, ClientŬ·¡½º°¡ »ç¿ëÇÏ·Á´Â JDBCµå¶óÀ̹öÀÇ Á¤º¸¸¦ ³Ñ°Ü¹Þ¾Æ¼ ÇØ´çÇÏ´Â µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» ¸¸µé¾î ÁÝ´Ï´Ù. ´ÙÀ½Àº È®ÀåµÈ ConnectionFactory Ŭ·¡½ºÀÇ Àüü ÄÚµå ÀÔ´Ï´Ù.
ConnectionFactory1.java(È®ÀåµÈ ÆÑÅ丮 Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¿¹) |
import java.sql.*; public class ConnectionFactory1 { public static final int ODBC = 1; public static final int ORACLE = 2; public ConnectionFactory1() {} public Connection getConnection(int dbms) throws SQLException { Connection conn = null; if (dbms == ConnectionFactory1.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 == ConnectionFactory1.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); } } return conn; } } |
C:\JavaExample\19> javac ConnectionFactory1.java |
ConnectionFactory1 Ŭ·¡½º´Â ClientŬ·¡½º°¡ »ç¿ëÇÒ JDBCµå¶óÀ̹ö¸¦ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï, staticÀ¸·Î ¼±¾ðµÈ º¯¼öµéÀ» Á¤ÀÇÇØ ³õ¾Ò½À´Ï´Ù.
n public static final int ODBC = 1;
n public static final int ORACLE = 2;
Client Ŭ·¡½º°¡ getConnection()¸Þ¼µå¿¡°Ô ¸Å°³ º¯¼ö·Î ³Ñ°ÜÁØ °ª°ú ºñ±³Çؼ Client Ŭ·¡½º°¡ »ç¿ëÇÏ·Á´Â JDBCµå¶óÀ̹öÀÇ Á¾·ù¸¦ ¾Ë¾Æ³À´Ï´Ù.
getConnection()¸Þ¼µå¿¡¼ ClientŬ·¡½º°¡ »ç¿ëÇÒ JDBCµå¶óÀ̹ö¸¦ ¼±ÅÃÇÏ´Â ºÎºÐ |
If (dbms == ConnectionFactory1.ODBC){ ¡¦ // ODBC µå¶óÀ̹ö¸¦ »ç¿ëÇØ¼ Ä¿³Ø¼ÇÀ» ¸¸µê } else if (dbms == ConnectionFactory1.ORACLE){ ¡¦ // ORACLE µå¶óÀ̹ö¸¦ »ç¿ëÇØ¼ Ä¿³Ø¼ÇÀ» ¸¸µê } |
´ÙÀ½Àº È®ÀåµÈ ConnectionFactory1 Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â Client Ŭ·¡½ºÀÇ Àüü ÄÚµå ÀÔ´Ï´Ù.
ClientClass1.java(È®ÀåµÈ ÆÑÅ丮 Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ClientŬ·¡½º) |
import java.sql.*; public class ClientClass1 { public static void main(String[] args) throws SQLException { Connection conn = new ConnectionFactory1().getConnection(ConnectionFactory1.ODBC); if (conn != null) { Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM My_Test"); rs.close(); stmt.close(); conn.close(); } } } |
C:\JavaExample\19>javac ClientClass1.java C:\JavaExample\19>java ClientClass1 |
getConnection()¸Þ¼µå¸¦ È£ÃâÇÒ ¶§, »ç¿ëÇÒ JDBCµå¶óÀ̹öÀÇ Á¾·ù¸¦ ¾Ë·ÁÁÖ´Â °ÍÀ» »©°í´Â ÀÌÀüÀÇ ClientClass¿Í µ¿ÀÏÇÕ´Ï´Ù.
n new ConnectionFactory1.getConnection(ConnectionFactory1.ODBC);
ConnectionFactoryŬ·¡½º´Â JDK¿¡ Á¸ÀçÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ´ÜÁö ¹æ¹ý·Ð Ãø¸é¿¡¼ Á¦½ÃÇϴ Ŭ·¡½ºÀÌ´Ï È¥µ¿ÇÏÁö ¸¶½Ã±â ¹Ù¶ø´Ï´Ù. ´ÙÀ½À¸·Î, ÆÑÅ丮 Ŭ·¡½º¿Í °°ÀÌ JDBC ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ÀÚÁÖ »ç¿ëµÇ´Â Connection Pooling ±â¹ý¿¡ ´ëÇØ »ìÆìº¸°Ú½À´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ ÀúÀÚ:ÃÖ¿µ°ü |