hibernate学习笔记(部分)
来源:互联网 发布:开ktv 知乎 编辑:程序博客网 时间:2024/04/28 16:24
哈哈 人生第一篇博文。
一下笔记为个人的hibernate学习理解,有错误之处不吝指正。
一、Hibernate
a) 在hibernate里,一张表至少对应一个实体类
b) 一张表可以对应多个类
二、Id生成
a) Tablegenerator
i. name:该表主键生成策略的名字,即@GeneratorValue中generator的值
ii. table:持久化的表名
iii. catalog:schema指明所在的目录名或数据库名
iv. pkColumnName:属性的值表示在持久化表中,该主键生成策略所对应键值的名字
v. valueColumnValue:主键生成时要用到的值,每次用完累加
vi. pkColumnValue:该生成策略所用到的记录的名字
vii. initialValue:表示主键初值
viii. allocationSize:表示每次主键增加的大小,默认为50
三、Annotation
a) 注解要么写在字段上,要么写在getter上,两种方法不能混用
四、Entity(初学容易犯错)
a) javax.persistence.Entity声明一个类对应一个实体
b) org.hibernate.annotation.Entity是前者的一个补充,但不是代替,没有声明实体类的功能
c) 如果要使用org.hibernate.annotation.Entity的补充功能,即使已经引入了包,还要写上注释,比如@org.hibernate.annotation.Entity(dynamicUpdate=true)(其实既然这样,也就没必要引入org.hibernate.annotation包了)。至于为啥引入包了还要写注释也很好理解,因为不写注释,编译器没法分别那个Entity属于哪个包。
一、Configuration
a) 用来管理hibernate.cfg.xml
b) 其configure()方法读取配置信息生成封装了配置信息的Configuration实例
二、SessionFactory
a) 管理连接池
b) 根据Configuration实例构建
c) 构建SessionFactory要放在静态代码块里,因为它只在该类被加载时执行一次
d) 是线程安全的
e) 一个应用一个SessionFactory
三、Session
a) 是Connection的一层高级封装,一个session对应一个Connection
b) 是实现延迟加载所必须的,而且需要保证是同一个Session
c) 管理数据库增删改查的操作(管理一个数据库任务单元)
四、对象三态
a) (Transient)没有id(内存中一个对象,缓存中没有)
b) (Persistent)id在数据库里(内存中有,缓存中有,数据库有(记录))
c) (Detached)id在内存里有(内存有,缓存没有,数据库有(记录)脱离Session管理)
五、动态代理(待看)(作业)
六、Update
a) @Column(updatable=false)注释的属性永远不参加更新
b) 用@org.hibernate.annotations.Entity(dynamicpdate=true)注释的类中的属性是可以实现按需更新的
七、Mappedby
a) 声明外键已被对方关联
b) 实际应用中,双关联必设mappedby
八、关联
a) 双向
i. 双向实际应用中必设mappedBy
ii. 双向在存储时要设手动双向关联,否则容易出错
b) 单向
i. 设定cascade(管存储和更新,fetch管读取)时,hibernate在存储时会自动存储相关的对象,不必手动存储
九、多态映射
a) 用table_per_class时,用多态去fetch数据时,要进行表的联合,效率低下
- hibernate学习笔记(部分)
- struts部分笔记和Hibernate部分笔记
- 东软学习,hibernate初级学习的部分截图和笔记(一)-入门以及XMl基础配置
- Hibernate学习笔记(初识Hibernate)
- Hibernate学习笔记(一)----初识Hibernate
- Hibernate学习笔记(一)了解Hibernate
- hibernate 学习笔记一(初识hibernate)
- Hibernate学习笔记(一)
- Hibernate学习笔记(1)
- Hibernate学习笔记(2)
- Hibernate学习笔记(3)
- Hibernate 学习笔记(2)
- Hibernate 学习笔记(3)
- Hibernate 学习笔记(1)
- Hibernate 学习笔记(4)
- Hibernate 学习笔记(5)
- Hibernate 学习笔记(6)
- Hibernate 学习笔记(7)
- Flash网页游戏辅助工具制作简析
- 软件开发项目管理的一点思考
- 风雨20年:我所积累的20条编程经验
- 了解gb类描述 二
- 计算当天是星期几
- hibernate学习笔记(部分)
- 基于SuperMap Objects写的GoogleMap地图切割程序
- CserialPort类解析(一)
- “PE文件格式”1.9版 完整译文(附注释)
- iPhone网络编程
- 中国天气预报城市编码
- Intent
- 数据生成程序样例
- java代码片段