为了账号安全,请及时绑定邮箱和手机立即绑定

怎么手动加载jar包,而不是不通过Eclipse的build path?需要加载2个不同版本的oracle jar包,求高手帮忙!

怎么手动加载jar包,而不是不通过Eclipse的build path?需要加载2个不同版本的oracle jar包,求高手帮忙!

德玛西亚99 2018-12-06 21:04:01
这两个jar包是class12.jar和ojdbc14.jar,因为需要操作的数据库版本不同(有gbk8i和gbk11g),需要对指定版本的数据库用指定的jar包的驱动类。    File file = new File("lib" + File.separator + "mysql-connector-java-5.1.15-bin.jar");     String jarPath = "file:" + file.getAbsolutePath();    System.out.println(file.getAbsolutePath());    try {        URL u = new URL(jarPath);        URLClassLoader oracle10g = new URLClassLoader(new URL[] { u });        Class<?> c = oracle10g.loadClass("com.mysql.jdbc.Driver");        Driver driver = (Driver) c.newInstance();        DriverManager.registerDriver(driver);        Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "123456");    } catch (MalformedURLException e) {        e.printStackTrace();    } catch (ClassNotFoundException e) {        e.printStackTrace();    } catch (InstantiationException e) {        e.printStackTrace();    } catch (IllegalAccessException e) {        e.printStackTrace();    } catch (SQLException e) {        e.printStackTrace();    } 打印出来 driver 的值是“com.mysql.jdbc.Driver@de6f34”,说明内存中有值;但是getConnection()方法就会出错java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/test,说明加载驱动类出了问题。 如果哪位大神遇到或解决过此问题的请帮帮忙。
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

根据面向对象的设计原则。

你应该写一个抽象的数据库连接的类。

然后分别写8g和11g的两个实现类。

在程序中判断是哪个数据库,再动态的绑定。

查看完整回答
反对 回复 2018-12-16
  • 1 回答
  • 0 关注
  • 534 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号