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操作了