Hibernate tools的hbm2ddl和hbm2java

之前用hiberate,写配置,写代码,建数据库都是手工。

也知道有辅助工具来自动完成上面的工作。

这次用Hibernate tools来实现hbm2ddl和hbm2java.

首先准备下。

确认你有以下环境。

jdk1.5以上 

ant环境

hibernate。我下的是3.3版

hibernate tools包,到hibernate官网下最新的吧。

mysql jdbc包,我用的是mysql5.0 到http://www.mysql.com

 

我用eclipse,在eclipse建一java工程sample

结构如下:

sample

--src

      --java

      --conf

--webapps

   --WEB-INF

      --lib

把下载的hibernate zip包解压。比如解压到hibernate3.3目录。把hibernate.jar copy到的lib目录下,还有hibernate3.3/lib/required下的所有jar都copy到工程lib目录下。

hibernate tools解压,把hibernate-tools.jarcopy到工程lib目录下。

mysql jdbc的jar包copy到工程lib目录下。

 

新建User.hbm.xml

 

新建Address.hbm.xml

 

src/conf目录下的hibernate.cfg.xml

 

src/conf目录下的hibernate.properties

至此,准备工作已完成。接下来要写ant脚本来实现hbm2ddl和hbm2java

工程下建一build.xml文件,内容如下:

 

 

接下来就是运行脚本了,在eclipse下用ant试图分别运行hbm2ddl和heb2java。

这时候会报java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder的错。下载的hibernate.zip里只有slf4j-api-1.5.8.jar,没有这个类。

www.slf4j.org/  去下载一个zip包,解压后把slf4j-nop-1.5.10.jar copy到lib目录

说一下slf4j

SLF4J(Simple Logging Facade for Java)作为commons-logging的替代,为各种logging APIs提供了一个简单的统一接口,使得最终用户能够在部署的时候配置所希望的logging APIs的实现。

SLF4J会根据classpath中所存在的适配器的jar来决定将使用的日志实现库。  

没用它也没去看。有兴趣的朋友自己看一下吧。了解了记得告诉我一下。呵呵。

 

再次运行会报java.lang.NoClassDefFoundError: freemarker/cache/TemplateLoader的错。

没有freemaker.jar,去下载一个 copy到lib目录

 

再次运行,成功了,hbm2java生成了User.java和Address.java

hbm2ddl会在控制台生成这样的sql语句。

[hbm2ddl] create table address (addressId integer not null auto_increment, country varchar(128), city varchar(128), zipcode varchar(12), userId integer not null, primary key (addressId)) type=MyISAM;
  [hbm2ddl] create table user (userId integer not null auto_increment, account varchar(64), name varchar(128), nickName varchar(128), status integer, phones varchar(128), emails varchar(128), primary key (userId)) type=MyISAM;
  [hbm2ddl] alter table address add index FKBB979BF4EBA71B93 (userId), add constraint FKBB979BF4EBA71B93 foreign key (userId) references user (userId);

 

用上面的方法减少我们的一些代码量。。。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

southline

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值