hibernate映射文件自动生成

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

37.8 Hibernate的自动生成工具

在37.4节给出的XML映射文件设置口诀:“以实体类的字段为依据来配置X ML映射文件:类的字段有则映射有、类的字段无则映射无”,这实际上是“实体类↔XML映射↔数据库表”这3者之间对应关系的一个反映。通过本节的学习,读者会发现,这3者之间是可以互相用工具来转化的。

37.8.1 由XML映射文件生成数据库表(V009)

Hibernate可以由XML映射文件自动生成数据库表,这简化了创建表格的工作。具体实现方法如下:

(1)将以下两种方法添加到HibernateUtil类中。

// 创建数据库表。如果表存在将会被删除重建,同时sql语句输出到c:\sms.sql

public static void createDbTable() throws HibernateException {

Configuration conf = new Configuration().configure();

SchemaExport dbExport = new SchemaExport(conf);

dbExport.setOutputFile("c:\\sms.sql");

dbExport.create(true, true);

}

// 增量式更新数据库表。

// (1)会将XML映射文件中新增的字段加入到表中,表的原数据不会被抹掉。

// (2)这种更新是通过字段来判断的,如果表字段和XML映射文件字段同名,

// 但类型和长度不同,表中的字段类型和长度也不会被更新。

// (3)如果表中的字段在XML映射文件中没有定义,此表字段也不会被删除。

public static void updateDbTable() throws HibernateException {

Configuration conf = new Configuration().configure();

new SchemaUpdate(conf).execute(true, true);//增量

}

(2)在myweb项目中创建一个名为createDbTable.jsp的JSP页面来调用上面的两种方法。其代码如下:

<%

.chengang.sms.db.HibernateUtil.createDbTable();

//.chengang.sms.db.HibernateUtil.updateDbTable();

%>

%注意:运行createDbTable.jsp之前要保证已经存在了sms库,否则会出错。本操作自动会将sms库的所有表都删除重建。重建表之后的初始数据需要另外再导

入,否则网页无法登录,导入初始数据可参阅26.5节。

打开地址“http://localhost:8080/myweb/createDbTable.jsp”,网页执行后无显示,但控制台会有输出,并且数据库表已经产生变化。如图37.10所示,schoolclass表的name字段的长度由20改成了255。

图37.10 Hibernate自动创建的表

可以重新修改XML映射文件model.hbm.xml,加入更多属性来定义一个字段,否则Hibernate对没有定义的属性(比如字段长度)会自动使用默认值。37.8.2 使用Hibernate Tools

在下载Hibernate时,顺带也下载了Hibernate Tools,它是一个用于辅助Hibernate开发的Eclipse插件。其安装方法和其他Eclipse插件一样,本书不再复述,下面主要谈谈如何使用它。

1.在myweb项目创建一个专用于Hibernate Tools的目录test

2.创建Hibernate配置文件

之前已经创建了一个Hibernate配置文件hibernate.cfg.xml,不过这个hi bernate.cfg.xml中的数据库配置是用Tomcat的DataSource。Hibernate Tool s不认这种数据库配置,无法连接到数据库,所以不得不再创建一个hibernate 2.cfg.xml。

创建hibernate2.cfg.xml的方法是:选择主菜单“文件→新建→其他”命令;在新建向导窗口的第一页选择“Hibernate Configuration File(cfg.xml)”项,单击“下一步”按钮;在第二页的设置如图37.11所示;在第三页的设置如图37.12所示。

图37.11输入文件名和所在目录图37.12数据库相关设置这时在项目新建的test目录下生成了一个hibernate2.cfg.xml文件,其内容如下:

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"/hibernate-configuration-3.0.dtd">

com.mysql.jdbc.Driver

123456

jdbc:mysql://localhost/sms

root

相关文档
最新文档