通常情况下, controller 是不允许直接使用 dao 的,一个合理的设计就是在 sevice 中去调用 dao 。
但是如果有临时的需求需要在 controller 中访问数据库,那怎么办呢?
有两种方法。
方法 1 :在 web.xml 中配置,使 spring 对事物的控制设计请求的整个生命周期。
<!-- 配置 Spring 的 OpenSessionInViewFilter ,以解决懒加载异常的问题 -->
< filter >
< filter-name > OpenSessionInViewFilter </ filter-name >
< filter-class > org.springframework.orm.hibernate4.support.OpenSessionInViewFilter </ filter-class >
< init-param >
<!-- 指定 sessionfactory 的名字,默认为 sessionFactory -->
< param -name > sessionFactoryBeanName </ param -name >
< param -value > sessionFactory </ param -value >
</ init-param >
</ filter >
这也能解决在 jsp 页面中你去对象 . 对象 . 对象时,告诉你 session 已关闭的问题。
方法 2 :
直接使用 sessionfactory 。对数据库的访问都是通过 sessionfactory 执行的,所以可以在 controller 中直接注入 sessionfactory 对象,访问数据库时 opensession 即可。
网上都没有简单快捷的解决方案,特记录在此。
springmvc框架的项目,如何在controller中使用dao访问数据库
标签:
查看更多关于springmvc框架的项目,如何在controller中使用dao访问数据库的详细内容...