2007-10-08
<深入浅出Hibernate>读书笔记
关键字: 读书笔记今天在公司图书管借了一本<深入浅出Hibernate>
时间十月八号,周一
评论
qmy
2007-11-03
读书笔记。。我还没做过
我也是刚看完这书。
我也是刚看完这书。
地方疙瘩人
2007-11-02
至此,这本书的理论部分已经看完,
看的较粗略,有不少地方没能完全理解.
看书过程中发现对Java基础理解不牢
对本书的评价
限于本人水平,不感枉驾评价,这本书没看见一句费话,没有浪费一张纸,语言通俗易懂,应当适合所有有Java基础的人.
(完)
看的较粗略,有不少地方没能完全理解.
看书过程中发现对Java基础理解不牢
对本书的评价
限于本人水平,不感枉驾评价,这本书没看见一句费话,没有浪费一张纸,语言通俗易懂,应当适合所有有Java基础的人.
(完)
地方疙瘩人
2007-11-02
三百一十九页
Hibernate实用技术
Hibernate分页
setFirstResult()和setFetchSize()设定分页范围
getLimitString()通过拼接不同的数据库分页语句实现
Session管理
通过ThreadLocal维护线程的Session重用
对应Hibernate提供了HibernateUnil
Hibernate与Spring Framework
一堆配置没学过Spring,
Hibernate 性能
性能测试:监测代码,工具P6SPY;
优化策略
1.选用较新的Hibernate
2.制定合理的缓存策略
3.采用合理的Session管理机制
4.尽量使用延迟加载
5.设定合理的批处理参数
6.如果可能,选用UUID作为主键
7.如果可能选用Version乐观缩代替悲观锁
8.开发过程打开Hibernate的SQL日志输出,观察了解Hibernate原理
我想以上这几点也可以说概括了Hibernate对持久层操作优化的几个方面
Hibernate实用技术
Hibernate分页
setFirstResult()和setFetchSize()设定分页范围
getLimitString()通过拼接不同的数据库分页语句实现
Session管理
通过ThreadLocal维护线程的Session重用
对应Hibernate提供了HibernateUnil
Hibernate与Spring Framework
一堆配置没学过Spring,
public class UerDAO extends HibernateDaoSupport implements IUserDAO{
public void insertUser(User user){
getHibernateTemplate().saveOrUpdate(user);
}
}
//不明白如何构造Session,Transaction,以及做Transaction.commit.
Hibernate 性能
性能测试:监测代码,工具P6SPY;
优化策略
1.选用较新的Hibernate
2.制定合理的缓存策略
3.采用合理的Session管理机制
4.尽量使用延迟加载
5.设定合理的批处理参数
6.如果可能,选用UUID作为主键
7.如果可能选用Version乐观缩代替悲观锁
8.开发过程打开Hibernate的SQL日志输出,观察了解Hibernate原理
我想以上这几点也可以说概括了Hibernate对持久层操作优化的几个方面
地方疙瘩人
2007-11-01
三百页
Hibernate回调与拦截
Lifecyle与Validatable
Lifecyle接口类似触发器
Validatable接口拦截器
都要实体实现接口破坏了实体的移植性(不再是实际意义的POJO)
Interceptor
不加载到实体,由Session调用(Session=SessionFactroy.OpenSession(it)),不影响实体类
Interceptor典型应用
介绍了一个Save与UPdate操作日志的记录
Hibernate回调与拦截
Lifecyle与Validatable
Lifecyle接口类似触发器
Validatable接口拦截器
都要实体实现接口破坏了实体的移植性(不再是实际意义的POJO)
Interceptor
不加载到实体,由Session调用(Session=SessionFactroy.OpenSession(it)),不影响实体类
Interceptor典型应用
介绍了一个Save与UPdate操作日志的记录
tempSession = HibernateUnit.getSessionFactory().openSession(session.connection())
地方疙瘩人
2007-10-31
二百九十二页
持久层操作
批量删除
Hibernate为了维护缓存与数据库的一致性,批量删除效率很低
Hibernate3中提供了Bluk delete/update方法(Query.executeUpdate())但无法维护缓存数据的一致有效.
Collection
Set 无序 不可重复 保存数据为String型会出问题
Bag 无序 Hibernate自造的允许包含重复元素的'Set'
Map 无序 K-V
List 有序 index保持次序
结果集排序
1.Sort
Map和Set通过实现SortedMap和SortedSet接口,排序通过配置文件
中sort=类名
Bag和List 不支持
2.order-by
Map,Set,Bag通过配置文件中order-by实现
List 不支持
持久层操作
批量删除
Hibernate为了维护缓存与数据库的一致性,批量删除效率很低
Hibernate3中提供了Bluk delete/update方法(Query.executeUpdate())但无法维护缓存数据的一致有效.
Collection
Set 无序 不可重复 保存数据为String型会出问题
Bag 无序 Hibernate自造的允许包含重复元素的'Set'
Map 无序 K-V
List 有序 index保持次序
结果集排序
1.Sort
Map和Set通过实现SortedMap和SortedSet接口,排序通过配置文件
中sort=类名
Bag和List 不支持
2.order-by
Map,Set,Bag通过配置文件中order-by实现
List 不支持
地方疙瘩人
2007-10-30
二百七十七页
持久层操作(未完)
延迟加载
1.实体对象的延迟加载
2.集合类型的延迟加载
3.属性的延迟加载
看完这一部分,对
能作出解答,PO是处于管理容器中,内部缓存中应当包含是PO最近一次与数据库同步的版本(PO可能是个脏数据)
数据保存
单个
1.Session.save()
2.Session.Update(){调用后并没有执行SQL}
3.Session.saveOrUpdate()
批量
持久层操作(未完)
延迟加载
1.实体对象的延迟加载
2.集合类型的延迟加载
3.属性的延迟加载
看完这一部分,对
引用
回家了,这两天没看新的,把第五章前面看过的又看了一下,产生了一个疑问,内部缓存存储的是不是PO?
书上写
这些Map(SessionImpl中)数据结构中维护了当前Session中所有相关PO的状态
书上写
这些Map(SessionImpl中)数据结构中维护了当前Session中所有相关PO的状态
能作出解答,PO是处于管理容器中,内部缓存中应当包含是PO最近一次与数据库同步的版本(PO可能是个脏数据)
数据保存
单个
1.Session.save()
2.Session.Update(){调用后并没有执行SQL}
3.Session.saveOrUpdate()
批量
地方疙瘩人
2007-10-29
二百五十八页
持久层操作(未完)
Session.get/load,(单个查找)
1.无符合条件,get返回null,load抛出Exception
2.load可返回代理实体
3.load会查找二级缓存
Session.find/iterate(批量查找)
1.find查询方式直接,无法利用缓存,
2.iterate先查找到符合条件的id,再由id一个一个的查找,并且能对结果进行在缓存中的处理.
Query Cache
保存了查询产生的SQL和结果集信息(类型和id),
当两次查询完全一样或两次查询间数据库表没发生变化,则检索Query Cache,再根据检索结果在缓存中查找.
持久层操作(未完)
Session.get/load,(单个查找)
1.无符合条件,get返回null,load抛出Exception
2.load可返回代理实体
3.load会查找二级缓存
Session.find/iterate(批量查找)
1.find查询方式直接,无法利用缓存,
2.iterate先查找到符合条件的id,再由id一个一个的查找,并且能对结果进行在缓存中的处理.
Query Cache
保存了查询产生的SQL和结果集信息(类型和id),
当两次查询完全一样或两次查询间数据库表没发生变化,则检索Query Cache,再根据检索结果在缓存中查找.
地方疙瘩人
2007-10-28
回家了,这两天没看新的,把第五章前面看过的又看了一下,产生了一个疑问,内部缓存存储的是不是PO?
书上写
书上写
引用
这些Map(SessionImpl中)数据结构中维护了当前Session中所有相关Session的状态
sptzone
2007-10-26
期待总结中....
地方疙瘩人
2007-10-25
二百四十五页
事务管理
ACID
三种不定:脏数据,不可重复读取,虚读,
四个事务隔离等级:Read Uncommitted,Read Committed,Repeatable Read,Serializable
Hibernate的事务管理
基于JDBC
基于JTA
锁
悲观锁
乐观锁
事务管理
ACID
三种不定:脏数据,不可重复读取,虚读,
四个事务隔离等级:Read Uncommitted,Read Committed,Repeatable Read,Serializable
Hibernate的事务管理
基于JDBC
基于JTA
锁
悲观锁
乐观锁
地方疙瘩人
2007-10-24
二百三十一页
数据缓存与Hibernate数据缓存.
内部缓存(Session Level,也称为一级缓存) 事务级缓存
Session维护(SessionImpl)的Map数据类型(PO).
二级缓存(SessionFactory Level)应用级缓存和分布式缓存
SessionFactory 维护第三方缓存实现.
应用级缓存和分布式缓存的应用, 主要考虑
1数据会不会被第三方修改.
2数据的大小(Data size)
3数据的更新频率
4是否会被平凡引用
5是否关键数据(如金融,帐务).
数据缓存与Hibernate数据缓存.
内部缓存(Session Level,也称为一级缓存) 事务级缓存
Session维护(SessionImpl)的Map数据类型(PO).
二级缓存(SessionFactory Level)应用级缓存和分布式缓存
SessionFactory 维护第三方缓存实现.
应用级缓存和分布式缓存的应用, 主要考虑
1数据会不会被第三方修改.
2数据的大小(Data size)
3数据的更新频率
4是否会被平凡引用
5是否关键数据(如金融,帐务).
地方疙瘩人
2007-10-23
引用
我也刚看完<深入浅出Hibernate>,
觉得这本书讲得真的是深入浅出,不愧为一本好书籍:)
地方疙瘩兄,有什么好见解,也写到博客上啊,
一起分享学习啊:)
觉得这本书讲得真的是深入浅出,不愧为一本好书籍:)
地方疙瘩兄,有什么好见解,也写到博客上啊,
一起分享学习啊:)
看的很粗略,还没有实战,看完前五章后再实战一下
有很多地方还不很理解,不敢谈什么见解
共同学习
地方疙瘩人
2007-10-23
二百二十二页
看完了实体对象识别
Hibernate如何去判断脏数据
通过unsaved-value级联保存未指明保存的数据
看完了实体对象识别
Hibernate如何去判断脏数据
通过unsaved-value级联保存未指明保存的数据
sptzone
2007-10-23
我也刚看完<深入浅出Hibernate>,
觉得这本书讲得真的是深入浅出,不愧为一本好书籍:)
地方疙瘩兄,有什么好见解,也写到博客上啊,
一起分享学习啊:)
觉得这本书讲得真的是深入浅出,不愧为一本好书籍:)
地方疙瘩兄,有什么好见解,也写到博客上啊,
一起分享学习啊:)
地方疙瘩人
2007-10-22
二百一十六页,Hibernate的高级特性
实体对象生命周期,
Transient;与数据库不关联;
Persistent;与数据库关联;
Detached;与数据库失去关联;
Transient->session.save(object)->Persistent->session.close()->Detached
Transient<-session.delete(object)<-Persistent<-session.update(object)<-Detached
VO(Transient,Detached)
PO(Persistent)
实体对象识别(未完):
Hibernate对象与数据库关联,并不能用通常的java对象判别方式进行,需要根据情况重写equals和hash
实体对象生命周期,
Transient;与数据库不关联;
Persistent;与数据库关联;
Detached;与数据库失去关联;
Transient->session.save(object)->Persistent->session.close()->Detached
Transient<-session.delete(object)<-Persistent<-session.update(object)<-Detached
VO(Transient,Detached)
PO(Persistent)
实体对象识别(未完):
Hibernate对象与数据库关联,并不能用通常的java对象判别方式进行,需要根据情况重写equals和hash
地方疙瘩人
2007-10-21
十月二十号到十月二十一号
看完了Hibernate基础的最后两节,HQL和自定义持久化.一大堆的访问数据库的方法.
有空总结一下.
看完了Hibernate基础的最后两节,HQL和自定义持久化.一大堆的访问数据库的方法.
有空总结一下.
地方疙瘩人
2007-10-19
十月十九号,周五
一百七十四页 Hibernate数据检索.
Criteria与DetachedCriteria
表达式Expression
示列Example
复合查询
高级特性
限制返回记录范围(很好实现了分页)
分组与统计
------------------------------------
看明白了where后的部分,但看不清where前的内容
眼睛很涨
一百七十四页 Hibernate数据检索.
Criteria与DetachedCriteria
表达式Expression
示列Example
复合查询
高级特性
限制返回记录范围(很好实现了分页)
分组与统计
------------------------------------
看明白了where后的部分,但看不清where前的内容
眼睛很涨
地方疙瘩人
2007-10-18
十月十八号,周四
昨天的星期写错了,怎么写的星期一
今天看到一百六十四页,看了数据的关联
分为一对一,一对多,多对一,多对多
属性配置
级联(cascade)
(out-join)
约束(constrained)
反转(inverse)
不明白cascade(对象间的级联关系对对象操作了对对象关联的对象也进行操作)和out-join的区别,
是不是cascade面向更新的out-join面向查找的?
昨天的星期写错了,怎么写的星期一
今天看到一百六十四页,看了数据的关联
分为一对一,一对多,多对一,多对多
<one-to-one> <one-to-many> <many-to-one> <many-to-many>
属性配置
级联(cascade)
(out-join)
约束(constrained)
反转(inverse)
不明白cascade(对象间的级联关系对对象操作了对对象关联的对象也进行操作)和out-join的区别,
是不是cascade面向更新的out-join面向查找的?
地方疙瘩人
2007-10-17
十月十七号,周一
看到一百四十五页,跳过了Bolb,Colb字段,O/R 映射的最后
实体映射策略
Hibernate不仅仅是java连接数据库的工具,应当是关系到数据库的设计以及与数据库表对应的Java类设计的工具。
粒度面向设计,一部份字段作为Component
粒度面向性能,将Bolb,Colb等大字段设计为Component,通过继承将对象纵向细分
polymorhism="explicit","implicit";
实体的层次设计:将关系数据库的数据映射为面向对象的形式
Table pre concrele class 两张表两个类,类同继承于一个父类,两个xml
Table pre subclass 三张表,两子表一父表,两个类,类同继承于一个父类,一个xml
Table per class hierarchy 一张表冗余字段(GATEGORY),两个类,类同继承于一个父类,一个xml,
看到一百四十五页,跳过了Bolb,Colb字段,O/R 映射的最后
实体映射策略
Hibernate不仅仅是java连接数据库的工具,应当是关系到数据库的设计以及与数据库表对应的Java类设计的工具。
粒度面向设计,一部份字段作为Component
粒度面向性能,将Bolb,Colb等大字段设计为Component,通过继承将对象纵向细分
polymorhism="explicit","implicit";
实体的层次设计:将关系数据库的数据映射为面向对象的形式
Table pre concrele class 两张表两个类,类同继承于一个父类,两个xml
Table pre subclass 三张表,两子表一父表,两个类,类同继承于一个父类,一个xml
<joined-subclass name=".." table="..">
Table per class hierarchy 一张表冗余字段(GATEGORY),两个类,类同继承于一个父类,一个xml,
<discriminator column=".." type="..">
地方疙瘩人
2007-10-16
十月十六号,周二
看到一百一十六页,看了高级映射的自定义数据和复合主键.实现UserType接口完成自定义数据,定义复合主键的方法,
打算看完本书的大部分在进行实践.
下面的Blob和Clob字段映射不看了,很少用,以后要是用到再看.
看到一百一十六页,看了高级映射的自定义数据和复合主键.实现UserType接口完成自定义数据,定义复合主键的方法,
打算看完本书的大部分在进行实践.
下面的Blob和Clob字段映射不看了,很少用,以后要是用到再看.
发表评论
- 浏览: 7797 次
- 性别:

- 来自: 南京

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
ZTE IM OK
求8.1版本
-- by kan7 -
神仙表
啊。。。要拜很多位啊~~
-- by lordhong -
关于Hibernate抛出LazyIn ...
感谢两位大侠了, 除了org.springframework.orm.hiber ...
-- by 地方疙瘩人 -
关于Hibernate抛出LazyIn ...
Hibernate.initialize(),
-- by anxin587 -
关于Hibernate抛出LazyIn ...
用Spring的OpenSessionInViewFilter或者拦截器,可以多 ...
-- by DigitalSonic






评论排行榜