Hibernate基础配置文件
来源:互联网 发布:淘宝客服主管培训课程 编辑:程序博客网 时间:2024/06/10 05:58
Hibernate配置文件
1.快捷方式
2.持久化对象
1.1规则
- 提供一个无参数 public访问控制符的构造器
- 提供一个标识属性,映射数据表主键字段
- 所有属性提供public访问控制符的 set get 方法(javaBean)
- 标识属性应尽量使用基本数据类型的包装类型
- 不要用final修饰实体 (将无法生成代理对象进行优化)
1.2持久化对象的唯一标识
Hibernate使用OID来建立内存中的对象和数据库中记录的对应关系
结论: 对象的OID和数据库的表的主键对应。为保证OID的唯一性,应该让Hibernate来为OID付值
1.3区分自然主键和代理主键
- 主键需要具备: 不为空/不能重复/不能改变
- 自然主键: 在业务中,某个属性符合主键的三个要求.那么该属性可以作为主键列.
- 代理主键: 在业务中,不存符合以上3个条件的属性,那么就增加一个没有意义的列.作为主键.
1.2基本类型和包装类型
- 基本数据类型和包装类型对应hibernate的映射类型相同
- 基本类型无法表达null、数字类型的默认值为0。
- 包装类默认值是null。当对于默认值有业务意义的时候需要使用包装类。
1.2类型对应表
2.hibernate.cfg.xml配置文件
property元素
取值:hibernate.connection.driver_class:数据库连接驱动 hibernate.connection.username: 数据库连接名 hibernate.connection.password: 数据库连接密码 hibernate.connection.url: 数据库连接串 show_sql: 控制台打印sql语句 format_sql: 打印sql语句时是否格式化sql语句 hibernate.connection.autocommit :事务自动提交 hibernate.current_session_context_class : 将Session与线程绑定=> 只有配置了该配置,才能使用getCurrentSession hbm2ddl.auto: 生成表结构策略 --查看值可以在hibernate.properties中找到
hbm2ddl.auto 取值:
update:(最常用的取值): 如果当前数据库中不存在表结构,那么自动创建表结构.
如果存在表结构,并且表结构与实体一致,那么不做修改
如果存在表结构,并且表结构与实体不一致,那么会修改表结构.会保留原有列.
create:(很少):无论是否存在表结构.每次启动Hibernate都会重新创建表结构.(数据会丢失)
create-drop: (极少): 无论是否存在表结构.每次启动Hibernate都会重新创建表结构.每次Hibernate运行结束时,删除表结构.
validate(很少):不会自动创建表结构.也不会自动维护表结构.Hibernate只校验表结构. 如果表结构不一致将会抛出异常.
hibernate.dialect:方言配置 –查看值可以在hibernate.properties中找*org.hibernate.dialect.MySQLDialect (选择最短的)
- 引入ORM映射文件:填写src之后的路径
<mapping resource="com/itheima/a_hello/User.hbm.xml"/>
3.User.hbm.xml
3.1 class
class: 配置实体与表的关系
name : 填写实体的完整类名
table: 与实体对应表的名称
dynamic-insert:动态插入 默认值是false
true=>如果字段值为null,不参与insert语句
* dynamic-update*:动态更新 默认值”false”
true=> 没改动过的属性,将不会生成到update语句中
3.2 id
id: 配置实体与表中 id对应
name: user对象中标识主键的属性名称
column: 主键在表中的列名
length: 列的数据长度
unsaved-value(不常用): 指定主键为什么值时,当做null来处理.
access(强烈推荐不要用):field 那么在操作属性时,会直接操作对应的字段而不是get/set方法
`<id name="id" column="id" length="255" >` <!-- generator:主键生成策略 1.increment 数据库自己生成主键. 先从数据库中查询最大的ID值,将ID值加1作为新的主键 2.identity 依赖于数据的主键自增功能 3.sequence 序列,依赖于数据中的序列功能(Oracle). 4.hilo(纯了解,永远用不到) : Hibernate自己实现序列的算法,自己生成主键. (hilo算法 ) 5.native 自动根据数据库判断,三选一. identity|sequence|hilo 6.uuid 生成32位的不重复随机字符串当做主键 7.assigned 自己指定主键值. 表的主键是自然主键时使用. --> <generator class="uuid"></generator></id>
3.3 property
`<!-- property : 实体中属性与表中列的对应 name : 实体中属性名称 column : 表中列的名称 length : 数据长度 precision: 小数点后的精度```` scale: 有效位数 insert(一般不用): 该属性是否加入insert语句. update(一般不用): 该属性是否加入update语句. not-null : 指定属性的约束是否使用 非空 unique : 指定属性的约束是否使用 唯一 -->
`
- hibernate 配置文件基础
- Hibernate配置文件基础配置
- Hibernate基础配置文件
- hibernate基础------>二级缓存的配置文件
- springMVC+spring+hibernate基础配置文件
- Hibernate教你配置文件(基础)
- Hibernate基础之配置文件和session
- hibernate配置文件
- Hibernate配置文件
- Hibernate配置文件
- Hibernate配置文件
- hibernate配置文件
- Hibernate配置文件
- Hibernate配置文件
- Hibernate配置文件
- Hibernate 配置文件
- hibernate配置文件
- Hibernate配置文件
- 头疼的闭包
- c++重载[]运算符
- bzoj3694 最短路 并查集(树链剖分)
- java容器(一)概述
- 2017山东省第八届ACM竞赛总结
- Hibernate基础配置文件
- 焦距、物距、像距
- POJ 2409 Let it Bead
- Python进阶之装饰器
- 欢迎使用CSDN-markdown编辑器
- 自己写个轮播图效果
- Ionic2开发App之环境搭建及demo演示(Win10 64位 )
- Spring
- C++第5次实验(基础班)—数组1