自定义映射文件

这里的映射文件指的是对应到数据库表的xml 的定义文件。

对应的每个数据库表栏位, 可以定义的属性有:

属性名 类型 Description
length number 栏位的长度
precision number precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度
scale number scale表示数字小数点右边的位数,scale默认设置为0.  如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。
not-null

true or false

是否为空
unique

true or false

值是否唯一
index string The name of a multi-column index
unique-key string The name of a multi-column unique constraint
foreign-key string The name of the foreign key constraint generated for an association. This applies to <one-to-one>, <many-to-one>, <key>, and <many-to-many> mapping elements. inverse="true" sides are skipped by SchemaExport.
sql-type string Overrides the default column type. This applies to the <column> element only.
default string Default value for the column
check string An SQL check constraint on either a column or atable

设置步骤

1. 设置 映射元素的length, precision 和 scale

<property name="zip" length="5"/>
<property name="balance" precision="12" scale="2"/>

2. 设置 not-null, UNIQUE, unique-key

not-null 如为true,指名该字段不允许为null,默认false

unique 如为true,指名该字段具有唯一约束,默认false

unique-key 为多个字段设定唯一约束

<many-to-one name="bar" column="barId" not-null="true"/>
<element column="serialNumber" type="long" not-null="true" unique="true"/><many-to-one name="org" column="orgId" unique-key="OrgEmployeeId"/>
<property name="employeeId" unique-key="OrgEmployee"/>

3. 设置 index 和 foreign-key 

foreign-key 为外键约束命名,在<many-to-many><one-to-one><key><many-to-one>元素中包含
foreign-key属性,在双向关联中,inverse属性为true的一端不能设置foreign-key

ndex 给一个或多个字段建立索引

<many-to-one name="bar" column="barId" foreign-key="FKFooBar"/>

4.  设置 child 元素

当有多个数据库栏位组成一个类的属性

<property name="name" type="my.customtypes.Name"/><column name="last" not-null="true" index="bar_idx" length="30"/><column name="first" not-null="true" index="bar_idx" length="20"/><column name="initial"/>
</property>

5. 设置默认值

<property name="credits" type="integer" insert="false"><column name="credits" default="10"/>
</property>
<version name="version" type="integer" insert="false"><column name="version" default="0"/>
</version>

6. 设置 sql-type

sql-type 设定字段sql类型

<property name="balance" type="float"><column name="balance" sql-type="decimal(13,3)"/>
</property>

7. 设置 check

check 设定sql检查约束

<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>

8. 添加注释

<class name="Customer" table="CurCust"><comment>Current customers only</comment>...
</class>

使用SchemaExport 工具产生数据库DDL 脚本

[Hibernate系列—] 1. 下载与试用Hibernate(MySQL与Oracle 配置)

这一篇的Usr.hbm.xml 为例,介绍如何使用命名行的方式产生DDl.

cmd 到 Eclipse 创建的工程的 bin 目录下,

执行:

java -cp .;../lib/hibernate-core-4.3.5.Final.jar;../lib/jboss-logging-3.1.3.GA.jar;../lib/jboss-transaction-api_1.2_spec-1.0.0.Final.jar;../lib/dom4j-1.6.1.jar;../lib/hibernate-commons-annotations-4.0.4.Final.jar;../lib/ojdbc14.jar;../lib/javassist-3.18.1-GA.jar;../lib/jandex-1.1.0.Final.jar;../lib/hibernate-jpa-2.1-api-1.0.0.Final.jar org.hibernate.tool.hbm2ddl.SchemaExport --config=hibernate.cfg.xml --output=my_schema.ddl

可以看到产生的  my_schema.ddl 文件的内容如下:

代码方式产生DDL脚本并执行

除了使用命令行外, 还可以使用代码的方式产生DDL 并执行这个DDL.

在bibernate.cfg.xml 配置好的前提下, 运行以下代码:

 public static void main(String[] args) {// TODO Auto-generated method stubConfiguration cfg = new Configuration().configure();new SchemaExport(cfg).create(true, true);        }

create 方法有两个参数:

1. 第一个参数设置是否输出DDL到控制台,
如果设置成true, 在控制台就可以看到以下类似的SQL

2. 第二个参数设置是否要在Db 中执行这个SQL

[Hibernate系列—] 3. 映射文件与使用SchemaExport自动产生Schema相关推荐

  1. hibernate中的映射文件xxx.hbm.xml详解总结

    一.Hibernate映射文件的作用: Hibernate映射文件是Hibernate与数据库进行持久化的桥梁 二,Hibernate映射文件主要内容:     (1).映射内容的定义: Hibern ...

  2. mysql hibernate id generator_Hibernate映射文件id的generator配置方法

    可选的子元素是 一个Java类的名称,用来生成该持久化类实例的唯一标识符.如果这个生成器实例需要某些配置值或者初始化参数,可以使用元素来传递这些参数. 所有的生成器都实现了org.hibernate. ...

  3. Hibernate - 对象关系映射文件(*.hbm.xml)详解

    对象关系映射文件,即POJO 类和数据库的映射文件*.hbm.xml(映射文件的扩展名为 .hbm.xml). POJO 类和关系数据库之间的映射可以用一个XML文档来定义. 通过 POJO 类的数据 ...

  4. 通过Mycelipse,用Hibernate反向生成映射文件、Javabean等

    0. 前言 以前就学过myeclipse在hibernate的基础上反向生成映射文件.对应数据的Javabean,以及DAO层.但是当时没有好好的总结,也很少去用这种方式.公司基本上也不用hibern ...

  5. Hibernate配置文件与映射文件详解

    Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=P ...

  6. Hibernate反向生成映射文件点击Hibernate reserve Engineering的时候没反应的解决方法

    经过反复折腾之后,终于知道了问题大概出现在哪里 而在网上查的方法基本都没有作用: 如下几个网上的方法是行不通的: 1.找到工程目录下的.myhibernatedata文件,然后找到reSettings ...

  7. hibernate配置文件和映射文件的dtd文件

    位置都在hibernate的jar包中的org/hibernate中,打开window-preferences,然后搜索xml,找到xml-catalog,点add按钮,选择第一个(catalog e ...

  8. myEclipse通过表生成hibernate实体和映射文件

    生成的方式可参考如下网址: http://zghbwjl.blog.163.com/blog/static/120336672201092093314713/ 转载于:https://www.cnbl ...

  9. Hibernate 映射文件

    转载 https://www.w3cschool.cn/hibernate/1vlx1iej.html Hibernate 映射文件 笔记 映射文件的主要作用:方便对数据库数据的处理,将数据库中每一个 ...

最新文章

  1. FTP的两种模式和在实际工作中应用
  2. 统一建模语言UML轻松入门系列
  3. MySQL 主从复制 复制过滤
  4. 华为机试HJ37:统计每个月兔子的总数(斐波那契数列)
  5. python安装osgeo库_python第三方库安装
  6. 1.2.1 Simulink入门操作
  7. linux 相关快捷键
  8. 浏览器缓存机制 过期机制和验证机制
  9. 吉首大学校赛 K 白山茶与红玫瑰 (线段树区间操作)
  10. 从一到无穷大 #5 公有云时序数据库定价
  11. excel设定备选值
  12. 五、使用Python操作数据库
  13. 关于维基百科你不知道的十件事:
  14. ldconfig命令简介
  15. 走进Vue.js 1.0-姜威-专题视频课程
  16. java汉字转拼音区别多音字_java中文转拼音,支持多音字词组,不支持音标
  17. 运行零币Zcash(ZEC)
  18. 自动化测试的神器:selenium,我真的吹爆
  19. 高精地图编辑生成 opendrive OpenSCENARIO
  20. html skype加好友代码,自己做skype标签代码 实现更多实用功能_联络聊天

热门文章

  1. Chaos网络库(三)- 主循环及异步消息的实现
  2. Vim 还是 Emacs
  3. IDM出现输入用户名和密码不能下载解决方法
  4. 微信公众号使用LocalStorage解决返回缓存问题
  5. Handshake failed due to invalid Upgrade header: null 解决方案
  6. 【报告分享】2021微信视频号生态洞察报告.pdf(附下载链接)
  7. 【推荐视频】分布式机器学习框架如何助力高维实时推荐系统
  8. scp从另一台服务器下载或者上传文件
  9. 推荐系统实战学习速成攻略1——预测准确度
  10. 基于表征(Representation)的文本匹配、信息检索、向量召回的方法总结