================
前面都是ssh的第一种整合方式,带了hibernate配置文件的
现在看第二种,不带hibernate配置文件,把hibernate的配置文件也交给spring管理
把数据库连接的改成prorerties文件
下面那个${} 是ognl表达式在xml里的使用
原来是引入配置文件,现在都写在spring里了,那么这个可以删掉了
下面就是干掉 方言,格式化,显示sql,自动创建语句这种了
在这个类里,有setHibernateProperties 这个方法
还剩下一个映射,里面也有相应的set方法,且这是一个可变参数,可以加载多个配置文件
hibernate模版的使用
hibernate还有一个命名查询,把hql语句命名一下,这个是在Customer.hbm.xml里写的
现在做一个单元测试hibernate模版方法好使不
现在已经没有web层了,所以customer需要自己封装一个
至于customerService之前就在xml里写了,现在只不过是用注解测试一下
延迟加载的问题
首先要知道哪些地方会出现延迟加载
1 事务加到业务层,在方法的开头开启事务,查询到了数据,然后在业务层结束
2 延迟加载是使用到关联对象的时候才会发送语句
3 此时如果我们在web层才使用到,此时事务已经关闭,也就是session已经关闭,就这时候就发送不了语句了
就会出现no-session异常
可以设置lazy阻止延迟加载,但是效率太低了
因为有时候我们只想查联系人,但是关闭了延迟加载,查了联系人就会自动取查客户,这样就效率就有问题了
hibernate没有提供解决的方法
但是spring提供了解决方法