Hibernate第02课:重要接口备忘
来自:http://www.verydemo.com/demo_c146_i16704.html
1.从User.java这个对象来看,这里没有任何和Hibernate相关的类,这个对象就是一个纯粹的POJO对象.所以说Hibernate是没有侵入性了,我们完全可以写多个dao,一个Hibernate实现,还可以写一个JDBC实现,相互之间都不会有影响.
2.关注对象,而不是关注表.hibernate会自动帮我们处理表中的事务.
3.Hibernate正确的开发方式是先建立对象模型,也可以称为领域模型.建立起来后建立映射关系,再到出表到数据库,再开发应用.如果先设计数据库,在感觉上开发并不是那么OO了.对象更能体现显示世界中事务之间的关系.
4.Configuration用来加载配置文件,Configuration默认加载hibernate.properties文件,现在常用的是hibernate.cfg.xml文件,所以需要调用configure方法,这个方法会自动加载hibernate.cfg.xml文件.
5.SessionFactory是跟数据库绑定的,一个数据库对应一个SessionFactory.SessionFactory是一个重量级的对象,创建比较耗时,所以最好是创建一次.并且是线程安全的,可以放在一个成员变量中,可以在多线程中使用.
6.Session是通过SessionFactory创建出来的,Session可以理解为对Connection又做了一层包装.但是Session和Connection是不同的.open了一个Session并不代表open了一个Connection,只有在真正用到的时候Session才会去连接池里拿.我们现在看不到连接池,其实hibernate是实现了一个连接池.并且可以设置连接池的大小,而且还可以连接第三方的连接池.Session除了管理连接还管理缓存.
....................................................................
8.Hibernate默认autocommit是false,所以需要手工commit,但是也可以配置.建议手工使用,session的生命周期是一个业务请求完成就close,这样不会产生问题.
9.将Log4j引入过来,便于调试,如果不使用日志跟踪,Hibernate出错了在控制台上是不会打印出来的.