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

在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即可。

网上都没有简单快捷的解决方案,特记录在此。

时间: 2024-10-12 05:50:38

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

如何在 Linux 中配置 sudo 访问权限

Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为. 如果其他用户想去实施一些行为,不能为所有人都提供 root 访问权限.因为如果他或她做了一些错误的操作,没有办法去纠正它. 为了解决这个问题,有什么方案吗? 我们可以把 sudo 权限发放给相应的用户来克服这种情况. sudo 命令提供了一种机制,它可以在不用分享 root 用户的密码的前提下,为信任的用户提供系统的管理权限. 他们可以执行大部分的

企业分布式微服务云SpringCloud SpringBoot mybatis (七)Spring Boot中使用JdbcTemplate访问数据库

本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. 首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdb

Python中通过cx_Oracle访问数据库遇到的问题总结

以下是Python中通过cx_Oracle操作数据库的过程中我所遇到的问题总结,感谢我们测试组的前辈朱勃给予的帮助最终解决了下列两个问题: 1)安装cx_Oracle会遇到的问题:在Windows下安装cx_Oracle不要尝试用pip install的方式了!下载官网的对应版本的msi安装文件,我的python2.7是32位的,oracle的instantClient也是32位的,这个cx_Oracle也选择32位的下载,安装成功后进入python模式下import cx_Oracle没问题,

[原创] Xcode中使用sqlite3访问数据库

最近开始写博客了,把我学习到的东西进行汇总和总结,今天就说说怎么使用sqlite3来操纵数据库吧 数据库的相关知识我就不去说明了,毕竟只要会sql语言的人就大家都一样. 本案例是在Xcode环境下创建的single view application进行演示操作,如有不清楚的朋友可以找我下载代码.qq:1750587828. 首先第一点,为什么要使用sqlite3? 在iOS的编程中,毫无疑问接触最多的就是界面的代码编排和设计,数据的解析与放置,算法的各种挠头问题... 在数据的解析与放置这一块,

SpringMVC框架下实现JSON(类方法中回传数据到jsp页面,使用jQuery方法回传)

JSON的实现,即将需要的数据回传到jsp页面: 1>.加入实现Json的三个架包到lib中:2>.目标方法上边加入注解,需要返回的值3>.在jsp页面中书写jQuery方法: eclipse中javaEE环境下的web.xml文件配置为: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema

iOS超全开源框架、项目和学习资料汇总(4)数据库、缓存处理、图像浏览、摄像照相视频音频篇

数据库 1. FMDB – sqlite的工具, 多线程FMDatabaseQueue实例,FMDB数据库的使用演示和封装工具类.GXDatabaseUtils – 在FMDB基础上的工具. 2. realm-cocoa – Realm是一个真正为移动设备打造的数据库,同时支持Objective-C和Swfit.Realm宣称其相比Sqlite,在移动设备上有着更好的性能表现. 3. Breeze – 用Swift写的一个轻量级的CoreData管理工具,并且还支持iCloud . 4. Ale

如何在Windows中使用Eclipse访问虚拟机Linux系统中的hadoop

1.将hadoop安装包解压到windows系统 2.给eclipse配置hadoop插件 3.配置参数 4.将hadoop/conf下的两个相关配置文件(core-site.xml和mapred-site.xml)的ip全部由localhost变为虚拟机ip,如图 参考文章: https://blog.csdn.net/hsl_1990_08_15/article/details/50704425 https://blog.csdn.net/hfut_jf/article/details/48

在java中使用JDBC访问数据库

配置文件之类的加略过了 1:首先需要创建一个类: //写入以上代码,上面的代码很难记所以手打会很容易出错,我们可以从配置文件中找到字符串,当链接数据库成功之后,就可以进行增删改查了. 其中修改添加,删除都可以使用executeupdate方法,在这里就不一一列举了 这是数据库中的新增结果 下面是查询的代码: 查询使用的是executequery方法 当我们做完这些工作之后要记得关闭连接,那个后开加就先关闭那个 这是查询后的结果

JSP中通过JDBC访问数据库

一.步骤介绍 1.通过Class.forName()加载驱动: 2.通过DriverManager.getConnection()获取Conncetion连接对象: 3.创建Statement对象传递sql语句到数据库执行: 4.接收ResultSet查询结果: 5.释放资源. 二.查询案例 public void getData(){ String URL = "jdbc:sqlserver://127.0.0.1:1433;databaseName=news"; Connectio