springmvc框架的项目,如何在controller中使用dao访问数据库

 我来答
懂视生活
2023-07-27 · 百度认证:湖南福仁科技有限公司官方账号
懂视生活
向TA提问
展开全部


springmvc框架中,controller和其他的bean是被分别扫描的,原因是如果不这样配置,controller就会被扫描两次,从而导致事物等问题。

通常情况下,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访问数据库
标签:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式