1.web服务器启动,通过初始化web.xml文件里的一系列配置文件信息来达到加载与hibernate相关文件效果
2.请求经过控制层,业务层后到达数据访问层,此时创建sessionFactory
3.获取当前session
4.进行持久化操作
5.关闭session
6.关闭sessionFactory
hibernate实现延迟加载的一个例子(load)
get与load区别
get方法直接发出SQL语句从数据库里获取数据
load方法返回的并不是数据,而是一个代理类,当外界真正需要用到这些数据时,才会发出SQL语句从数据库里获取数据
比如说我要从数据库里获取user表的信息,最终返回给user实体类或是一个list集合,如果使用的是get方法,那么返回的集合里
都是user表里的数据,如果使用load方法,那么返回的集合或是这个实体类其实里面并没有真正的数据,而只是一个代理而已,当外界要获取
实体类相关信息,比如user.getXX()或是users.get(index),此时这个代理会发出真正的sql并从数据库里获取数据