如何在Hibernate中使用DB2 JDBC驱动程序

时间:2016-11-11 10:10:40

标签: java hibernate jdbc db2 persistence.xml

我一直在

  

java.lang.ClassNotFoundException:无法加载请求的类:com.ibm.db2.jcc.DB2Driver

尝试使用Hibernate连接到DB2数据库时。驱动程序jar被引用为外部库:

Image of Eclipse's "Referenced Library" folder

它也出现在类路径中:

classpathentry kind="lib" path="C:/Program Files (x86)/IBM/SQLLIB/java/db2jcc.jar"/>

我也可以通过在源代码中导入它来访问该类。我的persistence.xml看起来如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
   <persistence-unit name="name" transaction-type="RESOURCE_LOCAL">
      <description>Persistence Unit</description>
      <provider>org.hibernate.ejb.HibernatePersistence</provider>

      <class>MyClass</class>

      <properties>
         <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
         <property name="javax.persistence.jdbc.url" value="jdbc:db2://url" />         
         <property name="javax.persistence.jdbc.user" value="user" />
         <property name="javax.persistence.jdbc.password" value="password" />
         <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect" />

         <property name="hibernate.hbm2ddl.auto" value="create" />
         <property name="hibernate.show_sql" value="false" />
         <property name="hibernate.format_sql" value="true" />         
      </properties>
   </persistence-unit>
</persistence>

我怀疑为什么这不起作用是该类包含在外部库中而不是作为maven依赖项,因为当我用net.ucanaccess.jdbc.UcanaccessDriver(包含在Maven包中)替换DB2驱动程序时,这个课程会很好。

知道我在这里做错了吗?

2 个答案:

答案 0 :(得分:0)

当你使用com.ibm.db2.jcc.DB2Driver&#39;确保db2jcc.jar&amp; db2jcc_license_cu.jar在您的类路径中。请在类路径中添加jar并尝试。

答案 1 :(得分:0)

问题是我使用Maven exec插件来运行主类。没有使用Maven,它工作得很好......