如何连接hibernate和DB2

时间:2011-03-31 06:03:22

标签: java hibernate struts db2

我正在运行一个使用struts和hibernate的应用程序。我目前正在使用Derby数据库。 现在我必须转向DB2数据库。

请告诉我

  • 我必须做什么配置 hibernate配置文件?
  • 我是否必须设置任何类路径 变量?
  • 我知道DB2有两个jar ( db2jcc.jar & db2jcc_license_cu.jar )。 我可能还需要其他罐子吗?

提前致谢。

3 个答案:

答案 0 :(得分:18)

它应该与 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个属性

答案 1 :(得分:2)

如果您的DB2驱动程序支持JDBC方法(并且确实如此),则需要设置连接属性。这有三种方法:通过xml,通过hibernate.properties文件和通过编程配置(更具体地说,参见Hibernate Reference Documentation,第1章和第2章。这是一个简单的例子,如何做到这一点: / p>

编程:

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

答案 2 :(得分:0)

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

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