注册Db2驱动程序的奇怪问题DriverManager.registerDriver
我用如下函数来注册DB2的驱动程序
第一次进入,该函数运行正常
其中drivers="COM.ibm.db2.jdbc.app.DB2Driver"
url="jdbc:db2:TEST"
当第二次进入时,我本意 if (DriverManager.getDriver(url) != null)不应该返回为null,从而不需要再注册一次,但是实际上第二次进入时 if (DriverManager.getDriver(url) != null)还是返回了为null,从而导致整个逻辑不正常,
错误为:无法注册驱动程序:COM.ibm.db2.jdbc.app.DB2Driver
Caused by: java.sql.SQLException: java.lang.UnsatisfiedLinkError: Native Library C:\Program Files\SQLLIB\bin\db2jdbc.dll already loaded in another classloader
同样的过程,装载oracle一切正常,if (DriverManager.getDriver(url) != null)能返回正确的结果
请问各位,是什么原因造成的呢?
private void registeDriver() throws DBException
{
if (drivers != null)
{
try
{
if (DriverManager.getDriver(url) != null)
{
//驱动程序已经注册
drivers = null;
return;
}
}
catch (SQLException ex)
{
//获得驱动程序失败,说明未注册适合的驱动程序,
//在下面注册驱动程序,不抛出异常
}
try
{
//注册驱动程序
Driver driver = (Driver) Class.forName(drivers).newInstance();
DriverManager.registerDriver(driver);
}
catch (Exception ex)
{
log(ex, "无法注册驱动程序:" + drivers);
throw new DBException("无法注册驱动程序:" + drivers, ex);
}
drivers = null;
}
}
问题点数:0、回复次数:1Top
1 楼shenhai800(深海)回复于 2005-03-17 16:46:02 得分 0
看你的db2驱动包中是否有COM.ibm.db2.jdbc.app.DB2Driver?Top
相关问题
- OLE DB驱动程序和ODBC驱动程序什么区别?
- 驱动 驱动
- 驱动
- 为什么我安装了oracle9i在odbc驱动程序中找不到Oracle Provider for OLE DB驱动?
- 关于oracle9i的ADO OlE DB for oracle的驱动程序问题
- 有人知道SQL Server的OLE DB驱动怎么打包吗?????
- 谁能给我一个 OLE DB for Interbase 驱动?
- 有没有SYBASE专用的OLE DB驱动程序?哪儿下载?
- Oracle客户端安装后没有Ole DB驱动程序,是怎么回事???
- .db 的数据库用什么打开?驱动用的是Sybase SQL Anywhere 5.0




