如何同时加载2种JDBC驱动

在代码中同时添加了sqlserver2008sqlserver2000jdbc的jar包,并且生成了2个连接池对象,每个连接池对象都设置了不同的DriverClass,但是启动的时候依然提示以下错误

2016-7-28 16:02:16 com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
警告: ConnectionID:5 ClientConnectionId: 88e86cb1-2464-4d23-be03-9beec06a5e2d Server major version:8 is not supported by this driver.

sqlserver2000依旧使用更高级别的DriverClass加载,如何才能做到同时加载2种不同版本的sqlserver的DriverClass

阅读 5.2k
2 个回答

是java吗?用的spring吗?想用不同的jar包其实就是想同时连接两个不同的数据库是吗? 如果是spring,请配置两个不同名称的数据源分开使用就行

题主这里的问题是涉及到类的加载机制,一般 JDBC 的驱动都是会用 Class.forName("包名.类名") 进行加载,如果两个版本的 JDBC 驱动的包名和类名是一样的,那只能加载其中一个 DriverClass

理解这个就很简单了,那就更改不同的包名呗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题