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

 

19.4 JDBC Driver

 

JDBCµå¶óÀ̹ö´Â À§¿¡¼­ Àá±ñ ¾ð±ÞÇßµíÀÌ, SunÀÌ Á¦°øÇÑ ÀÎÅÍÆäÀ̽º, Áï JDBC¸¦ ±¸ÇöÇØ ³õÀº °ÍÀÔ´Ï´Ù. JDBCµå¶óÀ̹ö´Â ÇÑ ¸¶µð·Î µ¥ÀÌÅͺ£À̽º¿Í ÀÚ¹Ù ÇÁ·Î±×·¥°£ÀÇ ¹ø¿ª±â ¿ªÇÒÀ» ÇÑ´Ù°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µå¶óÀ̹öµéÀº ÀÚ¹ÙÀÇ Å¬·¡½ºÀ̰í, ½ÇÇà ½Ã°£¿¡ ·Îµå µË´Ï´Ù.

±× Áß¿¡¼­ ƯÈ÷ DriverManager´Â µ¥ÀÌÅͺ£À̽º µå¶óÀ̹öµéÀ» ·ÎµùÇϰí, µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÀ» ¸¸µå´Â Ã¥ÀÓÀ» Áö´Â Ŭ·¡½ºÀÔ´Ï´Ù. ±×·¯³ª DriverManager°¡ µå¶óÀ̹ö¸¦ ±¸µ¿Çϱâ Àü¿¡, ¹Ýµå½Ã µå¶óÀ̹ö´Â µî·ÏµÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù. ±×¸®°í sun¿¡¼­ ±âº»ÀûÀ¸·Î Á¦°øÇØ ÁÖ´Â µå¶óÀ̺êÀÌ¿ÜÀÇ ¸ðµç µå¶óÀ̺ê´Â Á÷Á¢ ±¸ÇÏ¼Å¾ß ÇÕ´Ï´Ù.

 

 ¸¸¾à, ¿©·¯ºÐÀÌ Linux¿¡¼­ MySQLÀ» »ç¿ëÇÑ´Ù°í ÇßÀ» ¶§ Java¿¡¼­ MySQL¿ë µå¶óÀ̺ê´Â Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. ±×·¡¼­ ¿©·¯ºÐÀº MySQL¿ë ÀÚ¹Ù µ¥ÀÌÅͺ£À̽º µå¶óÀ̺긦 Á÷Á¢ ±¸Çؼ­ Classpath¸¦ °É¾îµÎ¾î¾ß ÇÁ·Î±×·¥ÀÌ ÀÛµ¿ÇÒ °ÍÀÔ´Ï´Ù.

 

µå¶óÀ̹ö¸¦ µî·ÏÇÏ´Â ÇÏ´Â ¹æ¹ý¿¡´Â 2°¡Áö°¡ ÀÖ½À´Ï´Ù. ±× ¹æ¹ýµéÀ» Â÷·Ê·Î »ìÆìº¸µµ·Ï ÇÏÁÒ. ¸ÕÀú ƯÁ¤ µå¶óÀ̹ö¸¦ Á÷Á¢ ¼±ÅÃÇØ¼­ ·ÎµùÇϰíÀÚ ÇÒ ¶§´Â ClassŬ·¡½ºÀÇ forName()¸Þ¼­µå¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº MS-SQL, PostgreSQL ±×¸®°í Oracle µ¥ÀÌÅͺ£À̽ºÀÇ µå¶óÀ̹ö¸¦ ·ÎµùÇÏ´Â °ÍÀ» °¢°¢ º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.

 

n        Class.forName(¡°sun.jdbc.odbc.JdbcOdbcDriver¡±);

n        Class.forName("postgresql.Driver");

n        Class.forName("oracle.jdbc.driver.OracleDriver");

 

 

µÎ ¹øÂ°·Î »ç¿ëÀڴ ƯÁ¤ µå¶óÀ̹ö¸¦ µî·ÏÇϰíÀÚ ÇÒ ¶§´Â DriverManager.registerDriver ()¸Þ¼­µå¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº OracleDriver¸¦ DriverManager¿¡ µî·Ï½Ã۰í ÀÖ´Â °ÍÀ» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.

 

n        DriverManager.registerDrivers( new oracle.jdbc.driver.OracleDriver() );

 

±×·³ Class.forNameÀ» »ç¿ëÇÏ¿©, µå¶óÀ̹ö¸¦ ·ÎµùÇÏ´Â ¿¹Á¦¸¦ ¸¸µé¾î º¸°Ú½À´Ï´Ù.

 

TestJdbcOdbcDriverApp.java(À©µµ¿ì ȯ°æ¿¡¼­ JdbcOdbcDriver ·Îµù ¿¹Á¦)

import java.sql.*; 

public class TestJdbcOdbcDriverApp{

   public static void main(String[] args){

       try{

          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

       }catch(Exception e){}

   }

}

C:\JavaExample\19>javac TestJdbcOdbcDriverApp.java

C:\JavaExample\19>java TestJdbcOdbcDriverApp

 

À§ÀÇ ¿¹Á¦¿¡¼­ ´«¿©°Ü º¼ ±¸¹®Àº µ¥ÀÌÅͺ£À̽º¿Í »óÈ£ Åë½ÅÇϱâ À§ÇØ Class.forName()¸Þ¼­µå¸¦ »ç¿ëÇØ¼­ JdbcOdbcDriver¸¦ ·ÎµùÇÏ´Â ±¸¹®ÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇØ¼­ class loader¿¡°Ô ·Îµå ½Ãų JdbcOdbcDriverŬ·¡½º¸¦ ¾Ë·ÁÁÖ°í ÀÖ´Â °ÍÀÔ´Ï´Ù. JDBCµå¶óÀ̹ö ¶ÇÇÑ Å¬·¡½ºÀÓÀ» ±â¾ïÇϽñ⠹ٶø´Ï´Ù. ÀÌ ¿¹Á¦´Â º°´Ù¸¥ ½ÇÇàÀº ÇÏÁö ¾Ê±â ¶§¹®¿¡, ¿¡·¯¸¸ ³ªÁö ¾Ê´Â´Ù¸é µå¶óÀ̹ö°¡ ·ÎµùµÈ °ÍÀÔ´Ï´Ù. ¸¸¾à JdbcOdbcDriver.classÆÄÀÏÀÌ sun.jdbc.odbcÆÐŰÁö³»¿¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ÀÌ ¿¹Á¦´Â ÀÚµ¿ÀûÀ¸·Î ¿¡·¯¸¦ ¹ß»ýÇÒ °ÍÀÔ´Ï´Ù. JDKµð·ºÅ丮 ³»ÀÇ src.jarÆÄÀÏ ¾ÈÀ» »ìÆì º¸½Ã±â ¹Ù¶ø´Ï´Ù. ±×·¯¸é ºÐ¸í JdbcOdbcDriver.classÆÄÀÏÀ» ãÀ¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×·³ ´ÙÀ½Àý¿¡¼­ °£´ÜÇÏ°Ô JDBC¸¦ ±¸ÇöÇØ º½À¸·Î½á ±× Àǹ̸¦ ÆÄ¾ÇÇϵµ·Ï ÇϰڽÀ´Ï´Ù.

 

DriverÀÎÅÍÆäÀ̽º ÁÖ¿ä ¸Þ¼­µå

public Connection connect(String url, Properties info) throws SQLException : ÁÖ¾îÁø url°ú Á¤º¸¸¦ °¡Áö°í µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ·Á ½ÃµµÇÕ´Ï´Ù.

public boolean acceptsURL(String url) throws SQLException : ÁÖ¾îÁø urlÀÇ µ¥ÀÌÅͺ£À̽º·ÎÀÇ Á¢¼Ó°¡´É ¿©ºÎ¸¦ ¹ÝȯÇÕ´Ï´Ù.

public DriverPropertyInfo[] getPropertyInfo(String url, Properties nfo) throws SQLException : ÁÖ¾îÁø url¿¡ ´ëÇÏ¿© µå¶óÀ̹ö°¡ ½ÇÇàÇÒ ¼ö ÀÖ´Â Á¤º¸µéÀ» ¾ò½À´Ï´Ù.

 

DriverManagerŬ·¡½º ÁÖ¿ä ¸Þ¼­µå

public static Connection getConnection(String url, String user, Sting password) throws SQLException : ÁÖ¾îÁø urlÀÇ µ¥ÀÌÅͺ£À̽º¿¡ user, password Á¤º¸·Î ¿¬°áÀ» ½ÃµµÇÕ´Ï´Ù.

public static void registerDriver(Driver driver) throws SQLException : »õ·Î¿î µå¶óÀ̹ö¸¦ µî·Ï½Ãŵ´Ï´Ù.

public static void deregisterDriver(Driver driver) throws SQLException :µå¶óÀ̹ö ¸Å´ÏÀú ¸ñ·ÏÀ¸·ÎºÎÅÍ ÁÖ¾îÁø µå¶óÀ̹ö¸¦ »èÁ¦ÇÕ´Ï´Ù.



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