版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、37.8 Hibernate的自动生成工具在37.4节给出的XMLM射文件设置口诀:“以实体类的字段为依据来配置XML映射文件:类的字段有则映射有、类的字段无则映射无”,这实际上是“实 体类?XML央射?数据库表”这3者之间对应关系的一个反映。 通过本节的学习,读者会发现,这3者之间是可以互相用工具来转化的。37.8.1由XML映射文件生成数据库表(V009 )Hibernate可以由XML央射文件自动生成数据库表,这简化了创建表格的工 作。具体实现方法如下:(1)将以下两种方法添加到HibernateUtil类中。/创建数据库表。如果表存在将会被删除重建,同时sql语句输出到c:sms.sq
2、lpublic 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、射文件字段同名,/但类型和长度不同,表中的字段类型和长度也不会被更新。/ (3)如果表中的字段在XML映射文件中没有定义,此表字段也不会被删除。public static void updateDbTable() throws HibernateException Configuration conf = new Configuration().configure();new SchemaUpdate(conf).execute(true, true);/土曾量(2)在mywe颁目中创建一个名为createDbTable.jsp的JSP页面来调用上面的两种方法。其代码如下:%注意:运行crea
4、teDbTable.jsp之前要保证已经存在了sms库,否则会出错。本操作自动会将sms库的所有表都删除重建。重建表之后的初始数据需要另外再导入,否则网页无法登录,导入初始数据可参阅26.5节。打开地址 http:/localhost:8080/myweb/createDbTable.jsp ”,网页执行后无显示,但控制台会有输出,并且数据库表已经产生变化。如图37.10所示,schoolclass表的nam疔段的长度由20改成了255。图37.10 Hibernate自动创建的表可以重新修改XML央射文件model.hbm.xml,加入更多届性来定义一个字段, 否则Hibernate对没有定
5、义的届性(比如字段长度)会自动使用默认值。37.8.2使用Hibernate Tools在下载Hibernate时,顺带也下载了Hibernate Tools,它是一个用丁辅助Hibernate开发的Eclipse插件。其安装方法和其他Eclipse插件一样,本书不 再复述,下面主要谈谈如何使用它。1.在myweb项目创建一个专用于Hibernate Tools的目录test2.创建Hibernate配置文件之 前 已 经创 建 了 一 个Hibernate配 置 文 件hibernate.cfg.xml, 不过这 个hibernate.cfg.xml中的数据库配置是用Tomcat的DataS
6、ource。Hibernate Tools不认这种数据库配置,无法连接到数据库,所以不得不再创建一个hibernate2.cfg.xml。创建hibernate2.cfg.xml的方法是:选择主菜单“文件 t 新建 t 其他”命令;在新建向导窗口的第一页选择“Hibernate Configuration File(cfg.xml)项,单击“下一步”按钮;在第二页的设置如图37.11所示;在第三页的设置如图37.12所示。容如下:com.mysql.jdbc.Driver123456jdbc:mysql:/localhost/smsroot这时在项目新建的test目录下生成了一个hiberna
7、te2.cfg.xml文件,其内图37.11输入文件名和所在目录图37.12数据库相关设置org.hibernate.dialect.MySQLDialect3.创建Hibernate Console Configuration来连接数据库创建一个“Hibernate Console Configuration”的方法是:选择主菜单“文件 t 新建 t 其他”命令;在新建向导窗口的第一页选择“Hibernate Console Configuration”项,单击“下一步”按钮;在新窗口General选项卡的设置如图37.13所示;Classpath选项卡的设置如图37.14所示,注意第二项是
8、JDBC连接包的地址TOMCAT_HOME% /common/lib/mysql-connector-java -5.0.4-bin. jar。最后单击“完成”按钮,如弹出对话框则选择“是”。Ham勘审心#罕hdNWnmty m ndt湖i_ h AAiweNbiAVdmefPrsiKtCFimLWcMh Si/Wm FtiEJ/n十 si-恤:物4MM*.,H J加成Mi即必Irw翻衅0图37.13 General选项卡图37.14 Classpath选项卡打开“Hibernate Console”透视图,可以看到创建的“Hibernate ConsoleConfiguration - my
9、web_console ,其Database结点显示了数据库sms的各表。如图37.15所示,选择右键菜单的“Edit Configuration”命令可以返回 图37.13重新配置myweb_consoleo%注意:对myweb_console的不慎修改,可能会导致Eclipse崩溃,这时强行关闭Eclipse后,再次打开即可。4.根据数据库表自动生成Java类、XML映射文件、DAO访问类操作如图37.16所示,选择“Hibernate Code Generation”命令,打开如图37.17所示的运行窗口;用右键菜单在左部的结点树新建一个结点,在右部顶myweb_console,其他的设
10、置参照图37.17和图37.18。图37.16 Hibernate Tools的运行 图37.17 Hibernate Tools的运行窗口-M ain选项卡设置完后单击“运行”按钮。在test目录中产生了图37.19所选的文件。其中产生的目录结构对丁源代码来说就是一个包.chengang.sms.model ,这是由图37.17中的Package项来设置的。图37.19导出的文件分成3 大类:头的“名称”处将新建结点改名为图37.15aHibernate Console”透视图 *Home.java AO类。它类似于本实例的DbOperate类,主要提供了一些访问数据库的方法,可以把它们的代
11、码合并到DbOperate类中。七 S 七1哭卜同LhvOttfWifceEJBl fiTTOt4IMR3A。( *)3血iM.S W-rirfff tM)七rttwmUW机Ccrigur*ion .cfig.顽|口Sdwu &KUMrttwri (.Hn4% :BaAhWifwSiMlU5.由XML映射文件产生数据表这一步实现的功能和第37.8.1节的一样,只不过这次是用Hibernate Tool s插件的GUI操作来实现。实现的方法是:选择图37.21中的“Edit Configura tion ”命令;在弹出窗口中选择Mappings选项卡(图37.20);再把一个或几 个XM
12、L央射文件加入到歹0表中,这里加入的是实例以前创建的model.hbm.xml。再次打开图37.21中的右键菜单,“ Run SchemaExport”命令由无效变为有效, 选择它。以上操作完成之后,Hibernate Tools插件将根据图37.20中的*.hbm.xml设置在数据库创建相应的表, 如果数据库存在同名的表将被覆盖。 另外, 图37. 21中的Configuration和Session Factory结点都将显示出model.hbm.xml中 相应的类配置信息。如果以上操作导致Eclipse崩溃,须强行关闭Eclipse ,然后再打开。如果SessionFactory结点下没有
13、显示,可选择主菜单“项目活理”命令,再重启Eclipse。图37.19导出的文件图37.18 Exporters选项卡Of xsrvv llbm E t岫打 出,& XcuF pm A5CQ 4tv)嘴:心5 hfcm E K略 B ,略祈-P由f cAszn FG供SB*)y拳整脉:七(吁粗.16.执行HQL语句选择图37.21中的“HQL Eitor ”命令,可以打开一个如图37.22所示的编 辑器,输入一条最简单的HQL句“form IUser ”,再选择图中最左边的三角形 图标来运行HQL语句。HQL句运行后,得到图37.23所示的数据对象列表。图中的中文显示不出 来,这也算是
14、Hibernate Tools的一个小BUG对国际化支持不够好。%注意:如果执行了第5步的RunSchemaExport,”数据库表将全部被覆盖,这时IUser表就没有数据了,因此得不到图37.23所示的结果。这时需要向IUser表中加入一些数据,或者参考26.4节和26.5节创建表并重新导入数据。翼* 呵vMin,硬虹斩ft H4怒鬻RS府W16*的一午DJM图37.22 HQL Editor * *.java和数据库表对应的数据模型。选中图37.18中的“ DomainCode ”复选框可以产生这些代码。-向OpWbH他UMKvflMKO6H31-OII Oft00:090pMMird1株uw3ddw,ranJUs#*际mPJM*mWdTHMT弟*知S3MImoM.cheE# m安必心知*m屿* 望心glm CE gs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学院校外实践基地协议书
- 暨南大学《美学》2023-2024学年第一学期期末试卷
- 暨南大学《国家金融学》2021-2022学年第一学期期末试卷
- 房屋拆迁补偿协议(2024年版)
- 软件工程师工作总结
- 科学计算语言Julia及MWORKS实践 课件8 - 基本数据类型
- 糖尿病伤口的护理评估
- 衣柜导购培训
- 翻译三级笔译实务模拟真题五
- 新生儿观察与护理
- 《外科学》阑尾疾病-课件
- 风湿免疫科常见疾病诊疗常规
- 摄影测量的应用(作业)课件
- 学校介绍简介校园ppt模板下载
- 速度轮滑基本技术课件
- 西门子PLC编程详解演示教学课件
- 建筑与市政危大工程清单
- 小学科学教师实验技能大赛理论试卷题含答案
- 新生代员工的管理与激励技巧课件
- 道医养生要义(修改版) - 副本课件
- 医院护工培训-教学课件
评论
0/150
提交评论