Hibernate执行流程
通过Configuration(nfigure();读取并解析hibernatecfgxml配置文件
由hibernatecfgxml中的<mappingresource=com/xx/Userhbmxml/>读取并解析映射信息
通过configbuildSessionFactory();//创建SessionFactory
sessionFactoryopenSession();//打开Sesssion
sessionbeginTransaction();//创建事务Transation
persistentoperate持久化操作
sessiongetTransaction(mit();//提交事务
关闭Session
关闭SesstionFactory
Hibernate核心接口
Hibernate的核心接口一共有个分别为SessionSessionFactoryTransactionQuery和Configuration这个核心接口在任何开发中都会用到通过这些接口不仅可以对持久化对象进行存取还能够进行事务控制下面对这五的核心接口分别加以介绍
Session接口Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流包含了很多常见的SQL语句)但需要注意的是Session对象是非线程安全的同时Hibernate的session不同于JSP应用中的HttpSession这里当使用session这个术语时其实指的是Hibernate中session而以后会将HttpSesion对象称为用户session
SessionFactory接口SessionFactroy接口负责初始化Hibernate它充当数据存储源的代理并负责创建Session对象这里用到了工厂模式需要注意的是SessionFactory并不是轻量级的因为一般情况下一个项目通常只需要一个SessionFactory就够当需要操作多个数据库时可以为每个数据库指定一个SessionFactory
Configuration接口Configuration接口负责配置并启动Hibernate创建SessionFactory对象在Hibernate的启动的过程中Configuration类的实例首先定位映射文档位置读取配置然后创建SessionFactory对象
Transaction接口Transaction接口负责事务相关的操作它是可选的开发人员也可以设计编写自己的底层事务处理代码
Query和Criteria接口Query和Criteria接口负责执行各种数据库查询它可以使用HQL语言或SQL语句两种表达方式
为什么使用Hibernate?
Hibernate进一步封装了JDBC对数据的操作也更加面向对象化了使程序员不用在繁琐的编写Dao层将更多的精力放在业务逻辑层上商业项目上企业注重产品的性能如果JDBC的代码写的非常优化那么JDBC架构运行效率最高但是实际项目中这一点几乎做不到这需要程序员非常精通JDBC运用Batch语句调整PreapredStatement的Batch Size和Fetch Size等参数以及在必要的情况下采用结果集cache等等而一般情况下程序员是做不到这一点的因此Hibernate架构表现出最快的运行效率关于Hibernate的好处还有很多提供一个链接使用hibernate的大优势
Hibernate还提供了很多功能以及Hibernate的必修内容有Hibernate映射HQL缓存延迟加载JPA这些内容还需要细化与深入在后面会继续总结