深入浅出hibernate总结
一、总括 1、sessionFactory与session (1)sessionFactory:一个数据库对应一个factory,线程安全、单例,一般随应用开启和关闭。 (2)session:非线程安全,管理connection(池) session对于sessionFactory的关系相当于conn对于jdbc的关系,但session不等同于connection。 (3)另外,一般是一个session对一个事务。 2、hibernate不适合的场景 (1)复杂查询/大批量数据导出 (2)批量修改/删除 (3)实体关系过于复杂 3、连接池与prepareStatement池的原理 连接池,在getConn与closeConn的时候,不是真正的创建和关闭,采用代理拦截,在get的时候,从池中拿,如果有则返回,没有则创建一个返回,归还的时候,如果池没有满,则放入池中,如果满了,则真正关闭。 (补上示例代码) prepareStatement池的原理就是缓存ps语句,不让其随着conn的关闭而失效。步骤就是拦截ps的close方法,然后每次create的时候,从池中查找,如果有则返回,没有则创建,每次close的时候,看池有没有满,如果有满,则关闭,没有则放入池中。 (补上示例代码) 4、hibernate configure的配置 Configuration cfg=new