java用URLClassLoader动态加载JDBC

本文介绍了如何在Java中利用URLClassLoader动态加载不同的DB2 JDBC驱动,以解决从DB2 7向DB2 8迁移数据时遇到的问题。避免将DB2 JDBC驱动加入到classpath,而是通过URLClassLoader加载指定版本的JAR或ZIP包。示例代码展示了如何加载驱动、实例化并建立数据库连接。
摘要由CSDN通过智能技术生成

 

 

    最近突然碰见这么一个问题,要从DB2 7上向DB2 8导入数据。这时DB2JAVA.ZIP的版本不一样还要同时执行,只能拿出URLClassLoade这个法宝了。

 

       执行前不要把任何DB2的JdBC当classpath导入

      Connection conn = null;

       URL url = new URL("file:"+"/usr/db28/db2java8.zip");//要加载的JAR或ZIP包

       URLClassLoader urlCL =URLClassLoader.newInstance(new URL[] { url });

       Class c =urlCL.loadClass("COM.ibm.db2.jdbc.net.DB2Driver");//加载类

       Driver dd=   (Driver) c.newInstance();//类的实例化

       String  dbUrl  =  "jdbc:db2://1.2.3.4:6789/aaa";//数据库URL

       Properties info = new Properties();  

       info.setProperty("user", "db2inst1");  

       info.setProperty("password", "password"); 

       conn = dd.connect(dbUrl, info);//获得连接

 

 

    用这个办法就可以动态加载两个不同版本的DB2 JDBC驱动了。连接池的方式我暂时没有试,不过C3P0至少可以同时加载不同数据库,其实很简单这里懒得说了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值