`
地方疙瘩人
  • 浏览: 37603 次
  • 性别: 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

    夏昕的 &lt;&lt;深入浅出Hibernate&gt;&gt;是一本非常不错的解析Hibernate的书籍

    深入浅出hibernate清晰版

    深入浅出hibernate 清晰版

    深入浅出 Hibernate.pdf

    根据提供的标题“深入浅出 Hibernate.pdf”以及描述“深入浅出 Hibernate.pdf”,我们可以推断这份文档主要讲解了Hibernate框架的相关知识。接下来,我们将基于这些信息展开详细的解释与知识点的梳理。 ### ...

    <<深入浅出Struts 2>>中文版 下载

    《深入浅出Struts 2》是一本专...通过阅读《深入浅出Struts 2》这本书并结合提供的博客资源,开发者不仅能掌握Struts 2框架的基本使用,还能提升在实际项目中的应用能力,为构建高效、稳定的Java Web应用打下坚实基础。

    深入浅出Hibernate

    本下载包说明&lt;br/&gt;-------------&lt;br/&gt;&lt;br/&gt;本下载包是《深入浅出Hibernate》(http://www.redsaga.com/hibernate_book.html)一书的配套教程程序,目前版本为1.0.&lt;br/&gt;&lt;br/&gt;本下载包与书籍的实战篇紧密结合.&lt;br/&gt;&lt;br...

    .深入浅出Hibernate

    深入浅出Hibernate

    深入浅出Hibernate(PDF)第二部分

    本书由互联网上影响广泛的开放文档OpenDoc系列自由文献首份文档“Hibernate开发...深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.

    深入浅出hibernate(PDF)第三部分

    本书由互联网上影响广泛的开放文档OpenDoc系列自由文献首份文档“Hibernate开发...深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.

    深入浅出Hibernate完整版1

    深入浅出Hibernate完整版,除了资料外,还包括PPT和类型映射关系图

    夏昕.深入浅出Hibernate.rar

    《深入浅出Hibernate》是夏昕撰写的一本关于Hibernate框架的经典教程,对于想要掌握Hibernate技术的开发者来说,这本书无疑是一份宝贵的资源。Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java...

    深入浅出Hibernate源码

    菜单window -&gt; preference -&gt; Java -&gt; Build Path -&gt; User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含hibernate-2.1目录下的hibernate2.jar及其lib...

    深入浅出HIbernate (加标签)1

    加了标签的《深入浅出HIbernate》,方便阅读和查找。

    《深入浅出Hibernate》.pdf

    《深入浅出Hibernate》这本书是针对初学者设计的,旨在帮助读者快速掌握Hibernate这一流行的Java对象关系映射(ORM)框架。Hibernate是一个强大的工具,它简化了Java应用程序与数据库之间的交互,通过提供一种抽象...

    深入浅出Hibernate(第二部分,共两部分).pdf

    深入浅出 Hibernate 电子书 中文

    深入浅出Hibernate.pdf

    尽管提供的“部分内容”并未直接涉及Hibernate的具体内容,但基于标题与描述中提到的“深入浅出Hibernate”,我们可以围绕Hibernate这一主题进行展开。 ### Hibernate简介 Hibernate是一个开源的对象关系映射...

    mysql+jdbc+jsp+Hibernate3.2+tomcattomcat5.028成功测试

    column="EVENT_ID"&gt;&lt;br&gt; &lt;generator class="native"/&gt;&lt;br&gt; &lt;/id&gt;&lt;br&gt; &lt;property name="date" type="timestamp" column="EVENT_DATE"/&gt;&lt;br&gt; &lt;property name="title"/&gt;&lt;br&gt; &lt;/class&gt;&lt;br&gt;&lt;br&gt;&lt;/hibernate-mapping&gt;&lt;br&gt;...

Global site tag (gtag.js) - Google Analytics