如何连接Hibernate和DB2

13

我正在运行一个使用Struts和Hibernate的应用程序,目前正在使用Derby数据库。现在我必须转移到DB2数据库。

请告诉我:

  • 在Hibernate配置文件中我需要做哪些配置?
  • 我需要设置任何classpath变量吗?
  • 我知道DB2有两个jar包(db2jcc.jar & db2jcc_license_cu.jar)。我还需要其他的jar包吗?

提前致谢。


我想让Hibernate来管理它,而不是任何容器。我正在使用JBoss服务器。 - Muhammad Imran Tariq
谢谢,这个问题已经解决了,但是还有另一个问题。这是链接:http://stackoverflow.com/q/5497875/420613 - Muhammad Imran Tariq
3个回答

22

它应该能够与db2jcc.jar一起使用。

将以下属性添加到您的hibernate.cfg.xml中:

<property name="hibernate.dialect">org.hibernate.dialect.DB2Dialect</property>

<property name="hibernate.connection.driver_class">com.ibm.db2.jcc.DB2Driver</property>

<property name="connection.url">jdbc:db2://<host>:<port50000>/<dbname></property>

<property name="connection.username">dbusername</property>

<property name="connection.password">dbpassword</property>

根据您的配置更改最后3个属性


请看我在页面下方的上一个回答中的回复。 - Muhammad Imran Tariq
谢谢,这个问题已经解决了,但是还有另一个问题。这是链接:stackoverflow.com/q/5497875/420613 - Muhammad Imran Tariq
你应该将解决了你问题的答案标记为正确答案。 - Hardik Mishra
@ImranTariq 这是你完整的 hibernate.cfg.xml 文件吗? - Tomasz Waszczyk

2
如果您的DB2驱动程序支持JDBC方法(它确实支持),则需要设置连接属性。有三种方法可以做到这一点:通过xml、通过hibernate.properties文件和通过编程配置(更具体地说,请参见Hibernate参考文档,第1章和第2章)。以下是一个简单的示例,演示如何完成此操作:
通过编程方式:
SessionFactory sf = new Configuration()
.setProperty("hibernate.connection.driver_class", "com.ibm.db2.jcc.DB2Driver")
.setProperty("hibernate.connection.url", "jdbc:db2://yourDbServerUrl:port/databaseName")
.setProperty("hibernate.connection.username", "yourUsername")
.setProperty("hibernate.connection.password", "yourPassword")
.buildSessionFactory();

通过 hibernate.properties

hibernate.connection.driver_class = com.ibm.db2.jcc.DB2Driver
hibernate.connection.url = jdbc:db2://yourDbServerUrl:port/databaseName
hibernate.connection.username = yourUsername
hibernate.connection.password = yourPassword

请看我在页面下方的上一个答案中的回复。 - Muhammad Imran Tariq
谢谢,这个问题已经解决了,但还有另一个问题。链接在这里:stackoverflow.com/q/5497875/420613 - Muhammad Imran Tariq

0

您需要将驱动程序(我不知道您拥有的JAR文件是否足够,但可能是这种情况)放在类路径上,并在persistence.xml中设置数据库方言为org.hibernate.dialect.DB2Dialect

在JBoss中,通常只需要将驱动程序放入服务器的lib目录或应用程序的lib目录中。


请见我的上一个回答下面的内容。 - Muhammad Imran Tariq
谢谢,这个问题已经解决了,但还有另一个问题。这是链接:stackoverflow.com/q/5497875/420613 - Muhammad Imran Tariq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接