使用DB2自带的驱动db2java.zip文件中的type2类型的驱动访问DB2,总是报错: java.sql.SQLException: java.lang.UnsatisfiedLinkError: no db2jdbc in java.library.path
或者:
java.lang.ClassNotFoundException: COM.ibm.db2.jdbc.app.DB2Driver
要么就报:没有合适的驱动。
我开始查classpath,把多余的驱动都删除了,还是报错,后来我又把db2java.zip文件改名为db2java.jar,也还是不行。
折腾了一个小时,我意识到访问DB2和访问Oracle不太一样,于是google,结果找到这篇文章:
把驱动加到环境变量中,怎么试也是出问题,测试也不是db的版本与驱动的版本不一致。
上网baidu google也是没有找到原因,同事机器上就没有任何问题,我就看她的配置发现和我配置还有点区别,就是少动态数据库文件。
于是我把db2jdbc.dll文件拷到Java_Home/bin下面,重启机器,OK!一定要记住:是bin下面!!!
db2java.zip文件要改名为db2java.jar,并且放到Common/lib下。
但是出现上述情况很有可能就是装DB2的时候 选择了最精简模式安装,导致必要的文件没有安装。
分享到:
2011-11-28 12:56
浏览 9054
评论
2 楼
ytt06460105
2013-01-23
问题已解决。
1 楼
ytt06460105
2013-01-23
楼主:按照你的方法做了,又出现了新的错误:
[com.alibaba.druid.pool.DruidDataSource]create connection holder error
java.sql.SQLException: [IBM][JDBC Driver] CLI0626E getHoldability 在此版本的 DB2 JDBC 2.0 驱动程序中不受支持。
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throwNotSupportedByDB2(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Connection.getHoldability(Unknown Source)
at com.alibaba.druid.filter.FilterChainImpl.connection_getHoldability(FilterChainImpl.java:319)
at com.alibaba.druid.filter.FilterAdapter.connection_getHoldability(FilterAdapter.java:849)
at com.alibaba.druid.filter.FilterChainImpl.connection_getHoldability(FilterChainImpl.java:316)
at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.getHoldability(ConnectionProxyImpl.java:180)
at com.alibaba.druid.pool.DruidConnectionHolder.(DruidConnectionHolder.java:68)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1182)
[org.hibernate.engine.jdbc.internal.JdbcServicesImpl]HHH000342: Could not obtain connection to query metadata : can not get connection
[org.hibernate.dialect.Dialect]HHH000400: Using dialect: org.hibernate.dialect.DB2Dialect
[org.hibernate.engine.jdbc.internal.LobCreatorBuilder]HHH000422: Disabling contextual LOB creation as connection was null
[org.hibernate.engine.transaction.internal.TransactionFactoryInitiator]HHH000399: Using default transaction strategy (direct JDBC transactions)
[org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory]HHH000397: Using ASTQueryTranslatorFactory
[org.hibernate.tool.hbm2ddl.SchemaExport]HHH000227: Running hbm2ddl schema export
Exception in thread "Druid-ConnectionPool-Destory" java.lang.NullPointerException
at com.alibaba.druid.pool.DruidDataSource.shrink(DruidDataSource.java:1374)
at com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:1226)