`
地方疙瘩人
  • 浏览: 37793 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

<深入浅出Hibernate>读书笔记

阅读更多

    今天在公司图书管借了一本<深入浅出Hibernate>

  时间十月八号,周一

分享到:
评论
25 楼 qmy 2007-11-03  
读书笔记。。我还没做过
我也是刚看完这书。
24 楼 地方疙瘩人 2007-11-02  
至此,这本书的理论部分已经看完,
看的较粗略,有不少地方没能完全理解.
看书过程中发现对Java基础理解不牢

对本书的评价
   限于本人水平,不感枉驾评价,这本书没看见一句费话,没有浪费一张纸,语言通俗易懂,应当适合所有有Java基础的人.
                                       ()
                          
23 楼 地方疙瘩人 2007-11-02  
三百一十九页
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对持久层操作优化的几个方面
22 楼 地方疙瘩人 2007-11-01  
三百页
Hibernate回调与拦截
Lifecyle与Validatable
Lifecyle接口类似触发器
Validatable接口拦截器
都要实体实现接口破坏了实体的移植性(不再是实际意义的POJO)
Interceptor
不加载到实体,由Session调用(Session=SessionFactroy.OpenSession(it)),不影响实体类
Interceptor典型应用
介绍了一个Save与UPdate操作日志的记录
tempSession = HibernateUnit.getSessionFactory().openSession(session.connection())
21 楼 地方疙瘩人 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 不支持
20 楼 地方疙瘩人 2007-10-30  
二百七十七页
持久层操作(未完)
延迟加载
1.实体对象的延迟加载
2.集合类型的延迟加载
3.属性的延迟加载
看完这一部分,对
引用
回家了,这两天没看新的,把第五章前面看过的又看了一下,产生了一个疑问,内部缓存存储的是不是PO?
书上写

这些Map(SessionImpl中)数据结构中维护了当前Session中所有相关PO的状态

能作出解答,PO是处于管理容器中,内部缓存中应当包含是PO最近一次与数据库同步的版本(PO可能是个脏数据)
数据保存
单个
1.Session.save()
2.Session.Update(){调用后并没有执行SQL}
3.Session.saveOrUpdate()
批量
19 楼 地方疙瘩人 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,再根据检索结果在缓存中查找.
18 楼 地方疙瘩人 2007-10-28  
回家了,这两天没看新的,把第五章前面看过的又看了一下,产生了一个疑问,内部缓存存储的是不是PO?
书上写
引用
这些Map(SessionImpl中)数据结构中维护了当前Session中所有相关Session的状态
17 楼 sptzone 2007-10-26  
期待总结中....
16 楼 地方疙瘩人 2007-10-25  
二百四十五页
事务管理
ACID
三种不定:脏数据,不可重复读取,虚读,
四个事务隔离等级:Read Uncommitted,Read Committed,Repeatable Read,Serializable
Hibernate的事务管理
基于JDBC
基于JTA

悲观锁
乐观锁
15 楼 地方疙瘩人 2007-10-24  
二百三十一页
  数据缓存与Hibernate数据缓存.
  内部缓存(Session Level,也称为一级缓存) 事务级缓存
Session维护(SessionImpl)的Map数据类型(PO).
  二级缓存(SessionFactory Level)应用级缓存和分布式缓存
SessionFactory 维护第三方缓存实现.
  应用级缓存和分布式缓存的应用,  主要考虑
  1数据会不会被第三方修改.
  2数据的大小(Data size)
  3数据的更新频率
  4是否会被平凡引用
  5是否关键数据(如金融,帐务).

14 楼 地方疙瘩人 2007-10-23  
引用
我也刚看完<深入浅出Hibernate>,
觉得这本书讲得真的是深入浅出,不愧为一本好书籍:)
地方疙瘩兄,有什么好见解,也写到博客上啊,
一起分享学习啊:)

看的很粗略,还没有实战,看完前五章后再实战一下
有很多地方还不很理解,不敢谈什么见解
共同学习
13 楼 地方疙瘩人 2007-10-23  
二百二十二页
看完了实体对象识别

Hibernate如何去判断脏数据
通过unsaved-value级联保存未指明保存的数据

12 楼 sptzone 2007-10-23  
我也刚看完<深入浅出Hibernate>,
觉得这本书讲得真的是深入浅出,不愧为一本好书籍:)
地方疙瘩兄,有什么好见解,也写到博客上啊,
一起分享学习啊:)
11 楼 地方疙瘩人 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
10 楼 地方疙瘩人 2007-10-21  
十月二十号到十月二十一号
看完了Hibernate基础的最后两节,HQL和自定义持久化.一大堆的访问数据库的方法.
    有空总结一下.
9 楼 地方疙瘩人 2007-10-19  
十月十九号,周五
  一百七十四页  Hibernate数据检索.
  Criteria与DetachedCriteria
  表达式Expression
  示列Example
  复合查询
高级特性
   限制返回记录范围(很好实现了分页)
   分组与统计
------------------------------------
  看明白了where后的部分,但看不清where前的内容

眼睛很涨
8 楼 地方疙瘩人 2007-10-18  
十月十八号,周四
昨天的星期写错了,怎么写的星期一
今天看到一百六十四页,看了数据的关联
分为一对一,一对多,多对一,多对多
<one-to-one>
<one-to-many>
<many-to-one>
<many-to-many>

属性配置
级联(cascade)
(out-join)
约束(constrained)
反转(inverse)
不明白cascade(对象间的级联关系对对象操作了对对象关联的对象也进行操作)和out-join的区别,
是不是cascade面向更新的out-join面向查找的?

7 楼 地方疙瘩人 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
<joined-subclass name=".." table="..">

Table per class hierarchy 一张表冗余字段(GATEGORY),两个类,类同继承于一个父类,一个xml,
<discriminator column=".." type="..">
6 楼 地方疙瘩人 2007-10-16  
十月十六号,周二
  看到一百一十六页,看了高级映射的自定义数据和复合主键.实现UserType接口完成自定义数据,定义复合主键的方法,
打算看完本书的大部分在进行实践.
下面的Blob和Clob字段映射不看了,很少用,以后要是用到再看.

相关推荐

    《深入浅出Hibernate》读书笔记

    总之,《深入浅出Hibernate》读书笔记涵盖了实体对象生命周期的转换、实体对象的识别机制以及Hibernate的多级缓存策略,这些都是理解并有效使用Hibernate的关键点。通过深入学习这些概念,开发者能够更好地掌握...

    hibernate入门必看

    本篇将深入浅出地介绍Hibernate的基础知识,帮助初学者快速入门。 ### 1. Hibernate概述 Hibernate 是一个开源的ORM框架,它的主要作用是将Java对象与数据库表进行映射,实现了对象的持久化。通过使用Hibernate,...

    良格葛的java学习笔记

    这份笔记以其独特的视角和深入浅出的讲解方式,深受学习者喜爱,尤其适合初学者及有一定基础的开发者进行进阶学习。笔记可能包含了从基础语法到高级特性的全面覆盖,旨在帮助读者掌握Java的核心概念和技术。 在Java...

    JSF+Spring+Hibernate相关技术文档

    JSF+Spring+Hibernate的实例讲解.doc则可能通过具体的案例,深入浅出地解释了这三个技术如何协同工作,帮助开发者理解它们在实际项目中的应用。例如,它可能会涉及如何使用JSF的Managed Beans来处理用户输入,通过...

    李兴华老师.rar

    这份资料的价值不仅在于其详尽的内容,更在于李兴华老师深入浅出的讲解方式。他将复杂的理论知识与实践案例相结合,使初学者能够快速理解和掌握Java技术的精髓。虽然不是视频教程,但李老师的文字记录同样能够生动地...

    四个SSH框架实战项目源码加笔记

    开发者可以通过阅读源码和笔记,学习如何在实际项目中运用SSH框架,解决常见的问题,如表单验证、异常处理、事务管理等。同时,理解并掌握SSH框架也能为后续的Spring Boot、Spring MVC等现代开发框架的学习打下坚实...

    Spring 英文4+中文4+中文扫面4+代码4

    它深入浅出地介绍了Spring的核心概念和使用方法,涵盖了从依赖注入到数据访问,再到Web开发的各个方面。第四版更新了对Spring 4.x的支持,包括Spring Boot和Spring Data等最新技术。通过这本书,读者可以学习到如何...

    SpringInAction5Study:SpringInAction5Study

    《Spring in Action 5》是一本深入浅出的Spring实战指南,涵盖了Spring框架的最新版本——Spring 5的核心特性。以下是对Spring 5关键知识点的详细解析: 1. **Spring核心概念**:Spring框架的基础是依赖注入...

Global site tag (gtag.js) - Google Analytics