- 浏览: 94132 次
- 性别:
- 来自: 深圳
文章分类
最新评论
可以通过一系列Eclipse插件、命令行工具和Ant任务来进行与Hibernate关联的转换。
除了Ant任务外,当前的Hibernate Tools也包含了Eclipse IDE的插件,用于与现存数据库的逆向工程。
-
Mapping Editor: Hibernate XML映射文件的编辑器,支持自动完成和语法高亮。它也支持对类名和属性/字段名的语义自动完成,比通常的XML编辑器方便得多。
-
Console: Console是Eclipse的一个新视图。除了对你的console配置的树状概览,你还可以获得对你持久化类及其关联的交互式视图。Console允许你对数据库执行HQL查询,并直接在Eclipse中浏览结果。
-
Development Wizards: 在Hibernate Eclipse tools中还提供了几个向导;你可以用向导快速生成Hibernate 配置文件(cfg.xml),你甚至还可以同现存的数据库schema中反向工程出POJO源代码与Hibernate 映射文件。反向工程支持可定制的模版。
-
Ant Tasks:
要得到更多信息,请查阅 Hibernate Tools 包及其文档。
同时,Hibernate主发行包还附带了一个集成的工具(它甚至可以在Hibernate“内部”快速运行)SchemaExport ,也就是 hbm2ddl。
可以从你的映射文件使用一个Hibernate工具生成DDL。 生成的schema包含有对实体和集合类表的完整性引用约束(主键和外键)。涉及到的标示符生成器所需的表和sequence也会同时生成。
在使用这个工具的时候,你必须 通过hibernate.dialet属性指定一个SQL方言(Dialet),因为DDL是与供应商高度相关的。
首先,要定制你的映射文件,来改善生成的schema。
很多Hibernate映射元素定义了一个可选的length属性。你可以通过这个属性设置字段的长度。 (如果是Or, for numeric/decimal data types, the precision.)
有些tag接受not-null属性(用来在表字段上生成NOT NULL约束)和unique属性(用来在表字段上生成UNIQUE约束)。
有些tag接受index属性,用来指定字段的index名字。unique-key属性可以对成组的字段指定一个组合键约束(unit key constraint)。目前,unique-key属性指定的值并不会被当作这个约束的名字,它们只是在用来在映射文件内部用作区分的。
示例:
<property name="foo" type="string" length="64" not-null="true"/> <many-to-one name="bar" foreign-key="fk_foo_bar" not-null="true"/> <element column="serial_number" type="long" not-null="true" unique="true"/>
另外,这些元素还接受<column>子元素。在定义跨越多字段的类型时特别有用。
<property name="foo" type="string"> <column name="foo" length="64" not-null="true" sql-type="text"/> </property> <property name="bar" type="my.customtypes.MultiColumnType"/> <column name="fee" not-null="true" index="bar_idx"/> <column name="fi" not-null="true" index="bar_idx"/> <column name="fo" not-null="true" index="bar_idx"/> </property>
sql-type属性允许用户覆盖默认的Hibernate类型到SQL数据类型的映射。
check属性允许用户指定一个约束检查。
<property name="foo" type="integer"> <column name="foo" check="foo > 10"/> </property> <class name="Foo" table="foos" check="bar < 100.0"> ... <property name="bar" type="float"/> </class>
表 21.1. Summary
length | 数字 | 字段长度/小数点精度 |
not-null | true|false | 指明字段是否应该是非空的 |
unique | true|false | 指明是否该字段具有惟一约束 |
index | index_name | 指明一个(多字段)的索引(index)的名字 |
unique-key | unique_key_name | 指明多字段惟一约束的名字(参见上面的说明) |
foreign-key | foreign_key_name | 指明一个外键的名字,它是为关联生成的。 |
sql-type | column_type | 覆盖默认的字段类型(只能用于<column>属性) |
check | SQL 表达式 | 对字段或表加入SQL约束检查 |
SchemaExport工具把DDL脚本写到标准输出,同时/或者执行DDL语句。
java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaExport options mapping_files
表 21.2. SchemaExport命令行选项
--quiet | 不要把脚本输出到stdout |
--drop | 只进行drop tables的步骤 |
--text | 不执行在数据库中运行的步骤 |
--output=my_schema.ddl | 把输出的ddl脚本输出到一个文件 |
--config=hibernate.cfg.xml | 从XML文件读入Hibernate配置 |
--properties=hibernate.properties | 从文件读入数据库属性 |
--format | 把脚本中的SQL语句对齐和美化 |
--delimiter=x | 为脚本设置行结束符 |
你甚至可以在你的应用程序中嵌入SchemaExport工具:
Configuration cfg = ....; new SchemaExport(cfg).create(false, true);
可以通过如下方式指定数据库属性:
-
通过-D<property>系统参数
-
在hibernate.properties文件中
-
位于一个其它名字的properties文件中,然后用 --properties参数指定
所需的参数包括:
你可以在你的Ant build脚本中调用SchemaExport:
<target name="schemaexport"> <taskdef name="schemaexport" classname="org.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="class.path"/> <schemaexport properties="hibernate.properties" quiet="no" text="no" drop="no" delimiter=";" output="schema-export.sql"> <fileset dir="src"> <include name="**/*.hbm.xml"/> </fileset> </schemaexport> </target>
SchemaUpdate工具对已存在的schema采用"增量"方式进行更新。注意SchemaUpdate严重依赖于JDBC metadata API,所以它并非对所有JDBC驱动都有效。
java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaUpdate options mapping_files
表 21.4. SchemaUpdate命令行选项
--quiet | 不要把脚本输出到stdout |
--properties=hibernate.properties | 从指定文件读入数据库属性 |
你可以在你的应用程序中嵌入SchemaUpdate工具:
Configuration cfg = ....; new SchemaUpdate(cfg).execute(false);
你可以在Ant脚本中调用SchemaUpdate:
<target name="schemaupdate"> <taskdef name="schemaupdate" classname="org.hibernate.tool.hbm2ddl.SchemaUpdateTask" classpathref="class.path"/> <schemaupdate properties="hibernate.properties" quiet="no"> <fileset dir="src"> <include name="**/*.hbm.xml"/> </fileset> </schemaupdate> </target>
发表评论
-
Hibernate Validator 实例
2008-06-18 11:21 5722在项目的业务属性中,你是不是要经常验证属性的取值范围呢. 想要 ... -
hibernate Annotations 实例
2008-06-18 11:16 2888从 hbm.xml 到 Annotations 任何获得Ma ... -
HibernateUtilSimple
2008-06-17 10:14 892package org.hibernate.auction.p ... -
HibernateUtil
2008-06-17 10:12 3395package org.hibernate.auction.p ... -
Hibernate的缓存机制介绍
2008-06-16 16:51 951缓存是介于应用程序和 ... -
hibernate常用语句
2008-06-16 16:50 1078Session Session lifecycle begin ... -
hibernate 配置
2008-06-16 16:49 1528第 4 章 配置 由于Hibernate是为了 ... -
对象/关系数据库映射基础
2008-06-16 16:47 1568对象和关系数据库之间的映射通常是用一个XML文档( ... -
集合类(Collections)映射
2008-06-16 16:45 981(译者注:在阅读本章的时候,以后整个手册的阅读过程中,我们都会 ... -
Hibernate包作用详解
2008-06-16 16:43 797Hibernate一共包括了23个ja ... -
HibenateMinute(一)
2008-06-16 16:39 923@ Hibernate3.0 àJBOSS @ ORM à「对 ... -
HibenateMinute(二)
2008-06-16 16:37 1223Criteria: Criteria criteria = s ... -
HibenateMinute(三)
2008-06-16 16:35 921hiberate缓存 一般而言,ORM的数据缓存应包含如下几个 ... -
Hibernate关系映射
2008-06-16 16:34 1020第 8 章 关联关系映射 8.1. 介绍 ... -
Hibernate对象共事
2008-06-16 16:32 1092第 11 章 与对象共 ... -
hibernate查询语言
2008-06-16 16:29 2152第 14 章 批量处理(Batch processing ... -
hibernate提升性能
2008-06-16 16:25 1015第 20 章 提升性能 20.1. 抓 ... -
hibernate体系结构
2008-06-16 16:20 1745第 3 章 体系结构(A ...
相关推荐
15. 工具箱指南:Hibernate提供了许多工具类和实用方法来简化开发,这部分会介绍这些工具的使用方法。 16. 示例:父子关系:文档中会包含一个关于如何处理父子关系映射的例子,这是对象模型中常见的关系映射挑战。 ...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. ...
本压缩软件集中了大量的Hibernate资料,目录如下: ...20. 工具箱指南; 21. 示例:父子关系(Parent Child Relationships); 22. 示例:Weblog 应用程序; 23. 示例:复杂映射实例; 24. 最佳实践(Best Practices);
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. ...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. ...
工具箱指南 15.1. Schema 生成器(Schema Generation) 15.1.1. 对schema定制化(Customizing the schema) 15.1.2. 运行该工具 15.1.3. 属性(Properties) 15.1.4. 使用Ant(Using Ant) 15.1.5. 对...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. ...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对...
21. 工具箱指南 21.1. Schema自动生成(Automatic schema generation) 21.1.1. 对schema定制化(Customizing the schema) 21.1.2. 运行该工具 21.1.3. 属性(Properties) 21.1.4. 使用Ant(Using Ant) 21.1.5. ...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. ...
工具箱指南 15.1. Schema 生成器(Schema Generation) 15.1.1. 对schema定制化(Customizing the schema) 15.1.2. 运行该工具 15.1.3. 属性(Properties) 15.1.4. 使用Ant(Using Ant) 15.1.5. 对...
21. 工具箱指南 21.1. Schema自动生成(Automatic schema generation) 21.1.1. 对schema定制化(Customizing the schema) 21.1.2. 运行该工具 21.1.3. 属性(Properties) 21.1.4. 使用Ant(Using Ant) 21.1.5. ...
《Spring+Hibernate参考书》是一本专注于整合Spring框架与Hibernate持久化库的指南,旨在帮助开发者深入了解和熟练掌握这两种在Java开发中广泛使用的开源技术。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)...
2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2. 映射文件 2.2.3. Hibernate配置 2.2.4. 用Ant编译 2.2.5. 安装和帮助 2.2.6. 加载并存储对象 2.3. 第二...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对...
20. 工具箱指南 20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对...
为了使用这些jar包,你需要在项目的类路径中包含它们,并按照SSH的集成指南进行配置,包括Spring的bean定义、Struts2的配置文件和Hibernate的持久化层设置。同时,你还需要确保兼容性,因为不同版本的SSH框架可能...
在服务层,Spring提供了数据访问抽象,包括JDBC模板、ORM集成(如Hibernate、MyBatis)等,简化了数据库操作。Spring Data JPA和Spring Data MongoDB等项目进一步扩展了对NoSQL数据库的支持,使得数据访问更加统一和...