您好,欢迎来到九壹网。
搜索
您的当前位置:首页hibernate配置及数据库映射建立流程

hibernate配置及数据库映射建立流程

来源:九壹网
搞了两天Hibernate,终于能够顺利地把流程跑下来了…… 主要流程如下(以tomcat为例,项目主目录为myweb): 1、安装Hibernate。网上讲得够多了,就不再重复了。

2、配置XML文件。把log4j.properties、hibernate.cfg.xml(也可以用hibernate.properties,这两个文件同时存在的时.cfg.xml会覆盖.properties)拷到myweb/WEB-INF/classes(所有的XML文件都放在这里)。

3、修改hibernate.cfg.xml,配置connection.datasource和dialect,例如: java:comp/env/link true

关于dialect是什么,参见Hibernate参考手册。MySQL就用MySQLDialect就行了。然后把这边放着,不要忘了顺便把Tomcat里面的DataSource配置好.

4、我的习惯是先把数据库建立起来,然后生成.hbm.xml和java类。所以建立数据库吧!暂称为mydb,下设两张表:t1,t2。

注意,强烈建议要设立id字段(也就是主键),否则后面生成的时候.hbm.xml会有点“与众不同”……

5、用Middlegen生成.hbm.xml。hibernate-middlegen的下载地址:http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=84728

注意:不要用ddl2hbm,我在这上面花了一天时间都没能把.hbm.xml建立起来,慢慢推进,不同的报错,都快疯了……最后一个错误是:“建议使用class2hbm”……昏……后来才知道,ddl2hbm基本上被废弃了,已经不提供技术支持了。用Middlegen是个不错的方法。 Middlegen的设置也不复杂:主要要配置两个文件。一个是要使用的数据库配置XML,位于middlegen\\config\\database,文件名为{数据库}.xml,例如MySQL的配置文件就是MySQL.XML,打开后很明了,很容易修改的。附上我的MySQL. 需要修改的项标红了(注意把数据库驱动mysql-connector-java-3.1.8-bin.jar拷到相应的目录):

ysql.sql\"/>

or-java-3.1.8-bin.jar\"/> /> ink\"/>

name=\"database.driver\" value=\"com.mysql.jdbc.Driver\"/> name=\"database.url\" value=\"jdbc:mysql://localhost/l

name=\"database.driver.classpath\" value=\"${database.driver.file}\"

name=\"database.driver.file\" value=\"${lib.dir}/mysql-connect

name=\"database.script.file\" value=\"${src.dir}/sql/${name}-m

name=\"dialect\">net.sf.hibernate.dialect.MySQLDialect

另一个是Middlegen主目录下的build.xml。修改的主要是:

(1)第24行左右的数据库连接,将默认的改为mysql.xml:

(2)第33行左右的name。这里的name基本上就是将来要连接的表对应类文件所属类的上两级。例如表对应类的包为myweb.elements,则name就是myweb。 (3)第184行左右的 destination=\"${build.gen-src.dir}\" package=\"${name}.Hibernate\" genXDocletTags=\"false\"

genIntergratedCompositeKeys=\"false\"

javaTypeMapper=\"middlegen.plugins.hibernate.HibernateJavaTypeMapper\" />

可以将package=\"${name}.Hibernate\"改为\"${name}.elements\"(个人习惯)。这个package就是所有表对应类所在的package。也可以改为绝对值,如myweb.elements。 至于genXDocletTags,在设置为true的情况下,xml文件带上了XDoclet的标签,可以用XDoclet生成对应类。我们下面使用的是Hibernate自带的hbm2java,所以不必要。但是设为true也没有关系。 其余可以不修改。

然后在Middlegen主目录下运行ant就行了(没有的话去http://ant.apache.org/下一个就行了,版本要在1.5以上)。一切顺利地话就会出现Middlegen的GUI了。

操作很一目了然,还可以设置one-to-many之类的映射关系。比ddl2hbm好得多。完成后按左上角的“Generate”就行了。生成文件在使用默认设置时会放在middlegen\\build\\gen-src下面。打开检查一下没有问题就可以继续了。

6、把XML映射文件都拷到myweb/WEB-INF/classes。修改hibernate.cfg.xml,加入XML映射文件的映射。直接加在的下面即可,最终hibernate.cfg.xml为:

PUBLIC \"-//Hibernate/Hibernate Configuration DTD//EN\"

\"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd\">

name=\"connection.datasource\">java:comp/env/link true

7、使用hbm2java生成对应类文件。 首先要配置好setenv.bat。

特别注意设置类路径的时候,目前hibernate的版本和这个tools发布时版本不一样,很多类文件名都已经改了,注意比对一下,修改过来。然后把HIBERNATE_HOME、HIBERNATETOOLS_HOME、JDBC_DRIVER、CORELIB、LIB设置好就可以了。除了以上5个路径和类路径以外的都可以删掉。试着在命令行模式下运行一下hbm2java,如果报告Nothing to do,就一切正常了。

然后,把生成的XML映射文件都拷到hibernate\ools\\bin下。运行: hbm2java *.hbm.xml

hbm2java生成完成以后,可以在generated目录下找到按目录存放好的类源文件,目录是每个.hbm.xml文件中中的类名规定的。最后将文件拷到相应目录。 8、写个测试类测试一下是否正常,正常的话就一切完成了。

如果在配置文件中有什么问题,建议查看HIbernate参考手册,虽然不是很全面,但是应该也很有些帮助。

name=\"dialect\">net.sf.hibernate.dialect.MySQLDialect

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务