019 ssh整合(4)

================

前面都是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提供了解决方法

猜你喜欢

转载自blog.csdn.net/yzj17025693/article/details/83014809
今日推荐