1、感受MyEclipse的强大,只需要右键为工程增加 Hibernate功能即可快速应用Hibernate

2、记住为表名逆向工程生成对象时, 如果要修改对象名,最好要带上对应的包名

3、生成的config文件默认放置在 根目录下,路径可以在sessionfactory中指定

4、sessionfactory类用于创建hibernate session, session相当于jdbc中的connection,它具有open,close,begintrans,commitrans,rollbacktrans方法

5、ThreadLocal的应用场合,我觉得最适合的是按线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。

    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();

  if (session == null || !session.isOpen()) {
   if (sessionFactory == null) {
    rebuildSessionFactory();
   }
   session = (sessionFactory != null) ? sessionFactory.openSession()
     : null;
   threadLocal.set(session);
  }

        return session;
    }

6、public REmployee findById(java.lang.String id) 通过主键查找

 

7、Hibernate三大功能:a、or-mapping ,  b、屏蔽掉数据库 ,c、缓存

       

1、OrMapping会影响删除时的效率

这里要注意的是批量操作时要适时对session进行flush操作避免OutOfMenoryError.删除:删除我主要说批量删除,Hibernate在进行批量删除前,首先必须将所有符合条件的数据加载到内存中(这是所有ORM框架必须面对的问题,这样主要是为了对目前的内部缓存和二级缓存中数据进行整理,以保存和数据库的一致性)这样就面对这如果操作数据量过大,也会出现OutOfMenoryError,所以推荐使用迭代删除。

 

hibernate缓存机制:

一级缓存:session级别的缓存

hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。

二级缓存:SessionFactory级别的全局缓存,

 

 

缓存可以简单的看成一个Map,通过key在缓存里面找value。

 

 

 

 

posted on 2010-03-04 23:07  运筹帷幄  阅读(220)  评论(0编辑  收藏  举报