Hibernate 学习总结

1、Hibernate是一种ORMapping

2、Hibernate主要涉及到三种对象:

Configuration(得到hibernate.cfg.xml);

sessionFactory(产生Session的工厂);

session(会话,相当于Connection,拥有save,find,flush等操作数据库方法)

说明:flush—— flush方法强制数据库同步,这里即强制Hibernate将user实例立即同步到数据库中。如果在事务中则不需要flush方法,在事务提交的时候,hibernate自动会执行flush方法,另外当Session关闭时,也会自动执行flush方法。

3、注意:在编写代码的时候请,对将POJO的getter/setter方法设定为public,如果设定为private,Hibernate将无法对属性的存取进行优化,只能转而采用传统的反射机制进行操作,这将导致大量的性能开销(特别是在1.4之前的Sun JDK版本以及IBM JDK中,反射所带来的系统开销相当可观)。

4、检索语言 Hiberante Query Language(HQL)

HQL子句本身大小写无关,但是其中出现的类名和属性名必须注意大小写区分。

5、Hibernate工作原理: 

1).读取并解析配置文件
2).读取并解析映射信息,创建SessionFactory
3).打开Sesssion
4).创建事务Transation
5).持久化操作
6).提交事务
7).关闭Session
8).关闭SesstionFactory

6、Hibernate N步曲:

    1>,new Configuration(): 找hibernate.properties文件,初始化所有Listeners,classes,imports,secondPasses....

    2>,configure(): 找到hibernate.hbm.xml文件,将其中的元素解析出来放到Configuration类中的相应的properties里,据cfg.xml文件中指定的hbm.xml名称找到并解析XXX.hbm.xml文件,将配置放到Configuration类中相应的属性中,如classes,imports,collections,tables,sqlFunctions,namedQueries....

    3>,buildSessionFactory:据第二步中生成的Configurations类中的相应属性生成CRUD相关的Sql语句,identifierGenerators,entityPersisters,collectionPersisters... 这一步是Mapping路上实质性的一步.

    4>,有了第三步的准备,就可以调用Session接口中面向对象的CRUD操作了

你可能感兴趣的:(Hibernate 学习总结)