hibernate的映射配置文件
来源:互联网 发布:js获取整数的最大数值 编辑:程序博客网 时间:2024/04/30 04:00
注:遇到一个属性记录一个属性,好记性不如烂笔头,以便以后查阅方便。采用的实体类 Customer
* 本文仅供参考查询作用,需要配置哪个属性查看对应属性的含义。有的属性有好几个选择值,还需比较之后选择适合项目的值来使用。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="it.bzc.pojo.Book" table="book" catalog="bzc"><id name="id" column="id" type="int"><generator class="identity"></generator></id><property name="name" column="name" type="string"></property><property name="price" column="price"></property></class></hibernate-mapping>
1.class
<class name="it.bzc.pojo.Book" table="book" catalog="bzc">属性: name > PO持久类的路径,注意后面没有.java,前面包名之间用“.”隔开,不是"/",与hibernate.cfg.xml里的mapping路径书写不一样
table > 该持久类对应数据库中表格的名称,数据库中表示什么名,这里就是什么名
catalog > 这里的bzc是数据库的名称,可根据实际功能替换数据库名称
注:在实际中,table属性可以不写,默认就是持久类的名称,这里是book;catalog也可以不写,因为在hibernate.cfg.xml中连接数据库的配置里已经配置过数据库了。
2.id / property
<id name="id" column="id" type="int">
<property name="name" column="name" type="string"></property>id和property放在一起说下,二者都是持久类当中的字段,只不过id是主键,用于标识每条记录。读者可理解为都一样,只是id因为特殊,给了个特殊的名字;而其他字段都是property。
属性: name > 持久类中属性的名字
column > 字面意思“栏”,数据库表中对应持久类属性的那一个字段,可以不写,默认和属性名一样
type > java里的属性值到表中字段的映射时数据类型要统一,就是通过这个控制。type有三种类型,拿字符类型举列子:
第一种:java类型 java.lang.String
第二种 :hibernate类型 string
第三种:sql类型 varchar(20)
注:sql类型的写法要和前面两种不一样,这里将
<property name="name" column="name" type="string"></property>写成sql类型的给大家看一下:
<property name="name"><column name="name" sql-type="varchar(20)"></column> </property>
当然 type 属性也可以不设置,hibernate会自动进行类型转换。
3.generator
<generator class="identity"></generator>
不知道大家有没有注意到,id里还有这个属性的配置,在其他地方介绍这里时总是大篇幅,个人可以简单的理解为:1.这是一个主键策略,用来生成主键用;2.当我需要配置主键的时候,只需要拷贝这行代码,将里面的class值改变即可;3.参考下方主键策略,选择合适的主键策略即可。
identity > mysql数据库用这个,因为mysql数据库支持自增这个功能,而这个单词的使用前提就是底层数据库支持自增。
sequence > oracle数据库用这个,这个单词使用前提是底层数据库支持序列的使用,而oracle数据库就支持。
increment > 这个和底层数据库无关了,是hibernate这个框架自身生成主键,每次递增1,纠结主键策略时可直接用这个。
native > 这个和上面那个increment有异曲同工之处,同样不考虑底层数据库是什么,native会智能选择,如果底层数据库是mysql,nvtive 会自动替换成 identity ,当然oracle也同样的道理,只不过这一切不需要你来选择,hibernate帮助你克服你的强迫症。
* 暂时先介绍以上四个策略,能满足大部分需求。
- hibernate的映射配置文件
- SSH-hibernate的映射配置文件
- Hibernate的配置文件和映射文件详解
- hibernate 各种映射的配置文件总结
- hibernate domain配置文件的关系映射
- Hibernate映射配置文件详解
- hibernate映射配置文件详解
- hibernate配置文件,映射文件
- Hibernate 关联映射配置文件
- hibernate映射配置文件详解
- hibernate映射配置文件说明
- Hibernate的配置文件的映射many-to-one错误
- hibernate配置文件映射元素详解
- hibernate配置文件和映射文件
- hibernate中的对象映射配置文件
- 【hibernate】配置文件与映射文件
- 配置文件中映射元素详解 - Hibernate - (老师的)
- 项目经验:Hibernate 映射配置文件precision与scale的用法
- html5中viewport浅析
- JSON对象遍历和处理
- zigbee cc2530环境搭建及程序开发大概流程
- AndroidStudio一个工程内查看多个项目的实现
- python高阶函数
- hibernate的映射配置文件
- js判断输入的数据是否是正整数,包括100.00(100.000)
- 捕获Home键
- 替换a b 的值,不借助过度变量(两值相互替换不借助中间变量)
- ble4.0节省功耗原因
- 机器学习笔记(一)——线性回归算法
- C#委托和事件的困惑
- onvif学习笔记8:最近写的一个ONVIF客户端的心得小结
- Android Studio 修改包名packageName