ÇÁ·Î±×·¡¹Ö
ù ÆäÀÌÁö ·£´ý ±Û ȸ¿ø°¡ÀÔ ·Î±×ÀÎ
ºñ°ø°³ ¼Õ´Ô ¡¦ 2018-01-31 18:46:31
URL https://te31.com/rgr/view.php?id=study&no=2517 ¸ð¹ÙÀÏ È­¸é
Class.forName(String className) & ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ ÀÎÅÍÆäÀ̽º

jdbc »ç¿ëÇÒ¶§ ¿Ö Class.forName()À¸·Î µå¶óÀ̹ö¸¦ ·ÎµåÇÏ´ÂÁö ±Ã±ÝÇØÇϱ⸸ ÇÏ°í

±×³É ±×·±°Ô ÀÖ±¸³ª ÇÏ°í »ç¿ëÇߴµ¥

¹®¶à ¾Ë¾Æº¸ÀÚ Çؼ­

http://devyongsik.tistory.com/294

¿ä Æ÷½ºÆÃÀ» ºÃ°Åµç¿ä.

ÀÌÁ¦¾ß Class.forName, static Å°¿öµå, SPI¿¡ ´ëÇØ Á¶±ÝÀ̳ª¸¶ ÀÌÇØ°¡ °¡³×¿ä.

È®½ÇÇÏ°Ô ÀÌÇØÇغ¸ÀÚ Çؼ­ ½ÇÁ¦ api declaration º¸¸é¼­ µû¶ó°¡ºÃ´Âµ¥....

¾ÆÁ÷Àº ³Ê¹« ¾î·Æ³×¿ä....

±×·¡µµ ¹º°¡ ¿ø¸®¸¦ ±ú¿ìÄ£ ´À³¦!



¾Æ·¡´Â Á¦°¡ Æ÷½ºÆà º¸°í µû¶óÇغ» ¿¹Á¦ÀÔ´Ï´Ù.

//Test.java - Ŭ¶óÀ̾ðÆ®
//================================================================
package com.test;

public class Test {
        public static void main(String[] args) throws ClassNotFoundException {
                Class.forName("com.test.MyDriver");
                Connection connection = DriverManager.getConnection();
        }
}
/*Ãâ·Â °á°ú
        Driver µî·Ï
        MyDriver's Connection return
*/
//================================================================


//Driver.java - JAVA¿¡¼­ Á¦°øÇÏ´Â ÀÎÅÍÆäÀ̽º(java.sql)
//================================================================
package com.test;

public interface Driver {
        Connection getConnection();
}
//================================================================


//Connection.java - JAVA¿¡¼­ Á¦°øÇÏ´Â ÀÎÅÍÆäÀ̽º(java.sql)
//================================================================
package com.test;

public interface Connection {

}
//================================================================


//DriverManager.java - JAVA¿¡¼­ Á¦°øÇÏ´Â µå¶óÀ̹ö ¸Å´ÏÀú Ŭ·¡½º(java.sql)
//================================================================
package com.test;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class DriverManager {
        private DriverManager() {}
        
        private static final Map<String,Driver> drivers = new ConcurrentHashMap<String,Driver>();
        public static final String DEFAULT_DRIVER_NAME = "default";
        
        public static void registerDefaultPrivider(Driver d) {
                System.out.println("Driver µî·Ï");
                registerDriver(DEFAULT_DRIVER_NAME, d);
        }
        
        public static void registerDriver(String name, Driver d) {
                drivers.put(name,d);
        }
        
        public static Connection getConnection() {
                return getConnection(DEFAULT_DRIVER_NAME);
        }
        
        public static Connection getConnection(String name) {
                Driver d = drivers.get(name);
                if(d==null)
                        throw new IllegalArgumentException();
         return d.getConnection();
        }
}
//================================================================


//MyDriver.java - µå¶óÀ̹ö ¹ê´õ°¡ Á¦°øÇϴ Ŭ·¡½º(ex: oracle.jdbc.driver.OracleDriver)
//================================================================
package com.test;

public class MyDriver implements Driver {

        private static Driver defaultDriver;
        static {
                defaultDriver = new MyDriver();
                com.test.DriverManager.registerDefaultPrivider(defaultDriver);
        }
        
        @Override
        public Connection getConnection() {
                System.out.println("MyDriver's Connection return");
                return null;
        }
}
//================================================================

Àâ´ã | 1336¸íÀÌ Àоú¾î¿ä. 3.137.171.121

0
1 ºñ°ø°³ ¼Õ´Ô ¡¦ 2018-01-31 21:52:55
Java reflection À» Á»´õ °øºÎÇØ º¸½Ã¸é ÁÁ°Ú³×¿ä.
2 ºñ°ø°³ ¼Õ´Ô ¡¦ 2018-02-04 11:04:27
´õºÒ¾î ÇÁ·Ï½Ã ÆÐÆ°µà
´ñ±ÛÀ» ÀÛ¼ºÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
(±ÇÇÑÀÌ ¾ø´Â ȸ¿ø·¹º§)
¸ñ·ÏÀ¸·Î
ÀÌ¿ë¾à°ü | ±¤°í/Á¦ÈÞ | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | ¹®ÀÇ/½Å°í | ¸ð¹ÙÀÏ TE31 | ¼­¹ö ºÎÇÏ : 16.75%
½Ç½Ã°£ Issue Ä¿¹Â´ÏƼ TE31 [¾ËÁö·Õ] ¨Ï 2002-2024
TOP arrow_upward