随笔分类 -  hibernate

摘要:hibernate提供的一级缓存hibernate是一个线程对应一个session,一个线程可以看成一个用户。也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和线程绑定了。hibernate一级缓存生命周期很短,和session生命周期一样,一级缓存也称sess... 阅读全文
posted @ 2015-05-31 23:23 cornucopia 阅读(191) 评论(0) 推荐(0)
摘要:一、why(为什么要用Hibernate缓存?)Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。二、w... 阅读全文
posted @ 2015-05-31 23:21 cornucopia 阅读(224) 评论(0) 推荐(0)
摘要:所谓懒加载(lazy)就是延时加载,延迟加载。什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,我们让数据在需要的时候才进行加载,这时我们就用到了懒加载。比如部... 阅读全文
posted @ 2015-05-31 10:35 cornucopia 阅读(10564) 评论(0) 推荐(1)
摘要:在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来弥补这种缺陷,但是这只是弥补而不是用了懒加载总体性能就提高了。我们所说的懒加载也被称为延迟加载,它在查询的时候不会立刻访问数据库,而... 阅读全文
posted @ 2015-05-31 10:34 cornucopia 阅读(285) 评论(0) 推荐(0)
摘要:学过hibernate的人都可能都知道hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),大家伙也许也知道这三者之间的区别,比如瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就是已经被保存到数据库中,... 阅读全文
posted @ 2015-05-30 23:20 cornucopia 阅读(146) 评论(0) 推荐(0)
摘要:我们应该拒绝SQL(或HQL)的拼装,应该永远不要编写这样的代码,有这很严重的安全问题,众所周知的SQL注入。我们可以考虑参数绑定,在hibernate中它有两种方式。1.具名参数利用具名参数的例子:[java]view plaincopyString queryString ="from Item... 阅读全文
posted @ 2015-05-30 15:33 cornucopia 阅读(386) 评论(0) 推荐(0)
摘要:1.查询对象:Query有org.hibernate.query和javax.persistence.query,用法如下如果按条件查找2.占位符:比如下面的例子:min 和:max,和query.setParameter(key,value);链式的也可以,同时这里setParameter("",... 阅读全文
posted @ 2015-05-30 11:44 cornucopia 阅读(372) 评论(0) 推荐(0)
摘要:一、get方法和load方法的简易理解(1)get()方法直接返回实体类,如果查不到数据则返回null。load()会返回一个实体代理对象(当前这个对象可以自动转化为实体对象),但当代理对象被调用时,如果没有数据不存在,就会抛出个org.hibernate.ObjectNotFoundExcepti... 阅读全文
posted @ 2015-05-28 23:14 cornucopia 阅读(279) 评论(0) 推荐(0)
摘要:在比较openSession和getCurrentSession这两个方法之前,我们先认识一下这两个方法。在进行配置信息管理时,我们一般进行一下简单步骤:Configuration cfg = new Configuration();// 获得配置信息对象SessionFactory sf = cf... 阅读全文
posted @ 2015-05-28 22:45 cornucopia 阅读(196) 评论(0) 推荐(0)