路漫漫,水迢迢

八十一难拦路七十二变制敌

精通Hibernate——Hibernate缓存详解

Session的缓存时内置的,不能被卸载,称为Hibernate的一级缓存,SessionFactory有一个内置缓存和一个外置缓存,其中外置缓存时可插拔的缓存插件,级为Hibernate二级缓存。第二级缓存本身实现很复杂,必须实现并发访问策略以及数据过期策略。 持久化层缓存的范围 持久化层的...

2015-09-14 14:46:59

阅读数:491

评论数:0

精通Hibernate——应用程序中的悲观锁和乐观锁

当数据库采用read commited隔离级别时,会导致不可重复读和第二类丢失更新的并发问题。可以使用悲观锁或者乐观锁来避免这类问题 悲观锁:在应用程序中显式的为数据资源加锁,悲观锁假定当前事务操纵数据资源时,肯定还会有其他事务同时访问该数据,为了避免当前事务操作收到干扰,先锁定资源,但是他会影...

2015-09-09 17:27:38

阅读数:611

评论数:0

精通Hibernate——数据库系统锁的基本原理

锁的基本原理如下: 1、当一个事务访问某种数据库资源时,如果执行select语句,必须先获得共享锁,如果执行insert、update或delete语句,必须先获得独占锁,这些锁用于锁定被操纵的资源 2、当第二个事务也访问相同的资源时,如果执行select语句,也必须先获得共享锁,如果执行in...

2015-09-09 15:26:56

阅读数:777

评论数:0

精通Hibernate——多事务并发运行的并发问题

对于同时运行的多个事务,当这些 访问数据库中相同的数据时,如果没有必要的隔离机制,就会导致各种并发问题,这些问题可以归纳为以下几类: 1、第一类丢失更新:撤销一个事务时,把其他事务已提交更新的数据覆盖。 2、脏读:一个事务读到另一个事务未提交的事务 3、虚读:一个事务读到另一个事务已提交的新...

2015-09-07 10:42:37

阅读数:1599

评论数:1

精通Hibernate——数据库的事务与声明事务边界

数据库事务必须具备ACID特征,分别是原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability) 声明事务包含以下内容: 1、事务的开始边界 2、事务的正常结束边界(commit):提交事务 3、事务的异常结束边界(rollbac...

2015-09-06 17:46:46

阅读数:1325

评论数:0

精通Hibernate——数据库的事务与声明事务边界

数据库事务必须具备ACID特征,分别是原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability) 声明事务包含以下内容: 1、事务的开始边界 2、事务的正常结束边界(commit):提交事务 3、事务的异常结束边界(rollbac...

2015-09-06 17:45:36

阅读数:136

评论数:0

精通Hibernate——报表查询、技巧以及优化

投影查询 是指查询结果仅包含部分实体或实体的部分属性。投影是通过select关键字来实现的。以下Hql会检索出Customer及关联的Order对象from Customer c join c.orders o where o.orderName like 'T%';如果希望查询结果中只包含Cu...

2015-09-06 14:36:34

阅读数:1133

评论数:0

精通Hibernate——HQL查询详解

十三四

2015-09-02 15:50:50

阅读数:563

评论数:0

精通Hibernate——Hibernate的检索策略

在Session的缓存中存放的是互相关联的对象图。在默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象,下面我们以Order和Customer为例介绍如何配置Hibernate的检索策略,以优化检索性能。 Session有三种检索方法:loa...

2015-09-02 09:43:56

阅读数:569

评论数:0

精通Hibernate——Hibernate的两种映射类型说明

Hibernate的映射类型分为两种,内置映射类型和客户化映射类型。 内置映射类型:负责把一些常见的java类型映射到相应的SQL类型 客户化映射类型:Hibernate允许用户实现UserType或CompositeUserType接口,来灵活定制客户化映射类型。客户化映射类型能够把用户定义...

2015-09-01 19:28:57

阅读数:802

评论数:0

精通Hibernate——Hibernate的映射类型

Hibernate的映射类型分为两种,内置映射类型和客户化映射类型。 内置映射类型:负责把一些常见的java类型映射到相应的SQL类型 客户化映射类型:Hibernate允许用户实现UserType或CompositeUserType接口,来灵活定制客户化映射类型。客户化映射类型能够把用户定义...

2015-09-01 14:13:01

阅读数:101

评论数:0

精通Hibernate——映射组成关系

建立域模型与关系型数据模型有着不同的出发点。域模型是由程序代码组成,通过细化持久化类的粒度提供代码可重用度,简化编程。关系数据模型由关系数据组成。存在数据冗余的情况下,需要把粗粒度的表拆分为具有外键参照关系的几个细粒度表,从而节省表的存储空间;另一方面在没有数据冗余的前提下,应尽可能减少表的数量,...

2015-08-31 16:53:05

阅读数:767

评论数:0

精通Hibernate——Hibernate使用触发器需要注意的两点

数据库系统有时会利用触发器来完成某些业务规则。触发器在接收到特定的事件时被激发,执行事先定义好的一组数据库操作。能激发触发器运行的时间可以分为以下几种: 1.插入事件,insert 2.更新记录事件,update 3.删除记录事件,delete Hibernate与数据库中的触发器协同工作...

2015-08-29 19:34:36

阅读数:3496

评论数:0

精通Hibernate——级联操纵对象

当我们加载一个类时session会加载所有和该类直接关联或者间接关联的对象。 在对象关系映射文件中,用于映射持久化类之间关联关系的元素,如、和元素,都有一个cascade属性,他用于指定如何操纵与当前关联的对象,他的可选属性如下: none:在保存、更新或删除对象时,忽略其他关联的对象,他是c...

2015-08-29 17:23:33

阅读数:699

评论数:0

精通Hibernate——Session的保存、更新、删除和查询

session的save方法 使一个临时对象变为持久化对象。 session的save方法完成以下操作: 1、把customer对象加入到缓存中,使他变为持久化对象 2、选用映射文件指定的标识符生成器为持久化对象分配唯一的OID。Customer.hbm.xml文件中id元素的 子元素指...

2015-08-20 19:18:01

阅读数:1046

评论数:0

精通Hibernate——Hibernate中Java对象的状态详解

Hibernate中对于要持久化的Java对象在他的生命周期中需要经历以下几种状态: 1、临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于session的缓存中。处于临时状态的Java对象被称为临时对象。 2、持久化状态(persistent):已经被持久化,加入到...

2015-08-13 19:15:55

阅读数:1190

评论数:0

精通Hibernate——理解HibernateSession缓存

如何希望一个Java对象一直处于生命周期中,就必须保证至少有一个变量引用他,或者在一个Java集合中存放了这个对象的引用。在session接口的实现类SessionImpl中定义了一系列的Java集合,这些Java集合构成了session的缓存。例如:private final Map entit...

2015-08-12 19:38:53

阅读数:672

评论数:0

精通Hibernate——Java对象在JVM中的生命周期

当应用程序通过new语句创建一个对象时,JVM会为这个对象分配一块内存空间,只要这个对象被引用变量引用,他就一直存在在内存当中。当这个对象不被任何对象引用的时候,他的生命周期就意味着结束,JVM会在适当的时候回收这个对象。下面通过代码来演示下生命周期:Customer c = new Custom...

2015-08-05 19:27:13

阅读数:744

评论数:0

精通Hibernate——映射一对多双向自身关联关系

首先我们来看下图: 每种商品类别代表一个Category对象,每一个Category可以和父列表关联,同时也可以和子类别关联,为了表达这种一对多的双向自身关联关系可以在Category类中定义两个属性: parentCategory:引用父类别对象 childCategories:引用一...

2015-08-05 19:24:48

阅读数:860

评论数:0

精通Hibernate——建立双向一对多关联

当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象或者一组与他关联的对象。 对象位于内存中,在内存中从一个对象导航到另一个对象显然比到数据库中查询数据速度快多了。类与类之间到底建立双向还是单向都是由业务决定。以Customer和Order为例,如果软件应用有大量这样的需求: 根据客...

2015-08-04 19:43:09

阅读数:526

评论数:0

提示
确定要删除当前文章?
取消 删除