Hibernate入门-----Hiberna核心文件详解
来源:互联网 发布:做淘宝客服的要求 编辑:程序博客网 时间:2024/05/10 09:08
Hibernate入门—–Hiberna核心文件详解
---ONE Goal , ONE Passion !
Hiberna核心文件详解
映射文件: *.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> 映射文件的dtd信息.打开hibernate.jar,在org.hibernate包中可找到hibernate-mapping-3.0.dtd文件,将dtd约束copy即可. <!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:全路径实体类名 --> <!-- table:表名 --> <class name="实体类名" table="数据库中的表明" > <!-- 主键的映射对应在id元素上 --> <!-- name:对象中用于作为主键的属性名 --> <!-- colomn:表中主键字段名 --> <!-- 如果name与column值相同,可以省略column --> <id name="id" column="id"> <!-- 将generator元素class属性设置为"assigned" --> <generator class="assigned" /> </id> <!-- 其他属性与字段的映射制作在property元素上 --> <!-- name:类中的属性名 --> <!-- column:表中的字段名 --> <!-- 如果name与column值相同,可以省略column --> <property name="name" /> <property name="pwd" /> </class> </hibernate-mapping>
hibernate-mapping元素属性
定义了映射文件的基本信息.
<hibernate-mapping package="包名" schema="数据库schema名 " catalog="数据库catalog名" default-access="property" default-lazy="true" default-cascade="none">
- package :为映射文件中的类指定一个包前缀,这样class中name可以直接写类,不用是全类名
- schema : 指定数据库schema名
- catalog : 数据库catalog名
default-access : hibernate访问属性时的策略.
property使用getter,setter方法访问成员变量.field使用反射的方式访问成员变量.
- default-cascade : 是否使用默认的级联
- default-lazy : 指定使用默认的延时加载策略.默认true
class元素属性
来描述一个持久化的类.
<class name="持久化类或接口的类名" table="表明" catalog="数据库的catalog名" lazy="true" rowid="" mutable="true">
- name : 持久化类或接口的类名
- table : 数据库表名,默认为类名
- catalog : 数据库的catalog名
- lazy : 是否使用延迟加载
- mutable : 类的实例是否可变 ?
- rowid : 指定是否可以使用ROWID ?
class元素属性
<id name="类中OID属性名" column="列名" access="" type="">
- name : 类中OID属性名
- column : 列名, 默认为属性名
- access : 属性访问策略, 会覆盖hibernate-mapping中defalut-access属性
- type : 属性的数据类型,一般不写,框架自动填装. 类中一般使用包装类.
主键生成策略——id属性下的generator子元素
assigned :
1.策略是由程序员手工控制输入数据模型OID的一种id生成策略.
2.默认的生成策略.
increment :
1.数据库字段为整形数据类型.
2.策略是由Hibernate内部控制生成OID的一种id生成策略,每次增量+ 1.
3.多个连接同时对一个表进行操作时,可能获取到相同的max值,导致相同id的出现.不能在集群环境下使用.
identity :
1.数据库底层控制生成OID的一种id生成策略.
2.数据库中id字段为整型数值类型,并且要求设置成自增特性sequence:
- 数据库底层控制生成OID的一种id生成策略
- 要求数据库中id字段为整型数值类型
- 只能应用于提供序列支持的数据库, 如oracle.
native :
1.会根据所使用的数据库类型,在(identity,sequence,hilo)生成策略中自动选择对应的id生成策略
uuid :
1.要求数据库中id字段为字符串类型
property元素属性
<property name="name" unique="false" not-null="true"/>
- unique : 该列是否唯一
- not-null: 该列是否允许为空
核心配置文件: hibernate.cfg.xml
两种格式:
1.properties属性文件格式,键值对存放信息
2.xml文件格式.最常用
hibernate.cfg.xml文件一般放在src下.发布后会在web-inf/classes路径下.
<?xml version='1.0' encoding='utf-8'?> 映射文件的dtd信息.打开hibernate.jar,在org.hibernate包中可找到hibernate-configuration-3.0.dtd文件,将dtd约束copy即可. <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 数据库连接的配置 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/userdb</property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <!-- 可选配置 --> <!--是否支持方言 --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!--执行CURD时是否打印sql 语句 --> <property name="show_sql">true</property> <!-- 事务是否自动提交 --> <property name="connection.autocommit">true</property> <!-- 资源注册 --> <mapping resource="cn/fy/modle/UserModel.hbm.xml"/> </session-factory> </hibernate-configuration>
0 0
- Hibernate入门-----Hiberna核心文件详解
- Hibernate入门到开发(二)详解核心配置文件
- Hibernate入门----核心API
- hibernate核心配置文件详解
- Hibernate核心API详解
- Hibernate框架(一)文件配置、核心API、对象状态详解
- 2.hibernate核心文件
- Hibernate核心文件
- Hibernate核心API的详解
- org.dom4j.DocumentException: www.hibernate.org Nested exception: www.hiberna
- Hibernate入门详解
- hibernate入门知识详解
- Hibernate入门详解
- Hibernate入门详解(一)
- Hibernate入门详解
- Hibernate的核心接口 --- Query查询详解
- hibernate之5大核心接口详解
- Hibernate的核心接口 --- Query查询详解
- 代码整洁之道精华——序言
- can总线的示波器检测方法
- 5-TCP 协议(基础)
- 三维网格
- LeetCode-Easy部分中标签为Two Pointers的所有题目
- Hibernate入门-----Hiberna核心文件详解
- Object.assign()
- 通过判断iframe是否存在来分别不同的业务处理
- STM32中assert_param的使用
- bzoj1179: [Apio2009]Atm
- Spark (Python版) 学习笔记(一)
- java8新特性-接口定义增强
- ZOJ 2281 Way to Freedom(最短路变形-寻找最大流)+ POJ 1797
- VMware和Ubantu相关问题