springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)
一、整合mybatis
为了更好的学习 springmvc和mybatis整合开发的方法,需要将springmvc和mybatis进行整合。
整合目标:控制层采用springmvc、持久层使用mybatis实现。
1.1 需求
实现商品查询列表,从mysql数据库查询商品信息。
1.2 jar包
包括:spring(包括springmvc)、mybatis、mybatis-spring整合包、数据库驱动、第三方连接池。
参考:“mybatis与springmvc整合全部jar包”目录
1.3 Dao
目标:
1、spring管理SqlSessionFactory、mapper
详细参考mybatis教程与spring整合章节。
1.3.1 sqlMapConfig.xml
在classpath下创建mybatis/sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!—使用自动扫描器时,mapper.xml文件如果和mapper.java接口在一个目录则此处不用定义mappers --><mappers><package name="com.sihai.ssm.mapper" /></mappers></configuration>
1.3.2 applicationContext-dao.xml
配置数据源、事务管理,配置SqlSessionFactory、mapper扫描器。
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsd "><!-- 加载配置文件 --><context:property-placeholder location="classpath:db.properties"/><!-- 数据库连接池 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><property name="maxActive" value="30"/><property name="maxIdle" value="5"/></bean><!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 数据库连接池 --><property name="dataSource" ref="dataSource" /><!-- 加载mybatis的全局配置文件 --><property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" /></bean><!-- mapper扫描器 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.sihai.springmvc.mapper"></property><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean></beans>
1.3.3 ItemsMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.sihai.ssm.mapper.ItemsMapper"><!-- sql片段 --><!-- 商品查询条件 --><sql id="query_items_where"><if test="items!=null"><if test="items.name!=null and items.name!=''">and items.name like '%${items.name}%'</if></if></sql><!-- 查询商品信息 --><select id="findItemsList" parameterType="queryVo" resultType="items">select * from items<where><include refid="query_items_where"/></where></select></mapper>
1.3.4 ItemsMapper.java
public interface ItemsMapper {//商品列表public List<Items> findItemsList(QueryVo queryVo) throws Exception;}
1.4 Service
目标:
1、Service由spring管理
2、spring对Service进行事务控制。
1.4.1 applicationContext-service.xml
配置service接口。
1.4.2 applicationContext-transaction.xml
配置事务管理器。
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsd "><!-- 事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 数据源 --><property name="dataSource" ref="dataSource"/></bean><!-- 通知 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!-- 传播行为 --><tx:method name="save*" propagation="REQUIRED"/><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="find*" propagation="SUPPORTS" read-only="true"/><tx:method name="get*" propagation="SUPPORTS" read-only="true"/></tx:attributes></tx:advice><!-- 切面 --><aop:config><aop:advisor advice-ref="txAdvice"pointcut="execution(* com.sihai.springmvc.service.impl.*.*(..))"/></aop:config></beans>
1.4.3 OrderService
public interface OrderService {//商品查询列表public List<Items> findItemsList(QueryVo queryVo)throws Exception;}@Autowiredprivate ItemsMapper itemsMapper;@Overridepublic List<Items> findItemsList(QueryVo queryVo) throws Exception {//查询商品信息return itemsMapper.findItemsList(queryVo);}}
1.5 Action
1.5.1 springmvc.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsd "><!-- 扫描controller注解,多个包中间使用半角逗号分隔 --><context:component-scan base-package="com.sihai.ssm.controller"/><!--注解映射器 --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/><!--注解适配器 --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/><!-- ViewResolver --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean></beans>
1.5.2 web.xml
加载spring容器,配置springmvc前置控制器。
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>springmvc</display-name><!-- 加载spring容器 --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/spring/applicationContext.xml,/WEB-INF/classes/spring/applicationContext-*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 解决post乱码 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- springmvc的前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>
1.5.3 OrderController
@Controllerpublic class OrderController {@Autowiredprivate OrderService orderService;@RequestMapping("/queryItem.action")public ModelAndView queryItem() throws Exception {// 商品列表List<Items> itemsList = orderService.findItemsList(null);// 创建modelAndView准备填充数据、设置视图ModelAndView modelAndView = new ModelAndView();// 填充数据modelAndView.addObject("itemsList", itemsList);// 视图modelAndView.setViewName("order/itemsList");return modelAndView;}}
1.6 测试
http://localhost:8080/springmvc_mybatis/queryItem.action
springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)相关推荐
- 整合SSM(Spring+SpringMVC+MyBatis)-增删改查(上)
新建maven web工程,添加web.xml 添加pom文件以及依赖,update项目.然后添加maven依赖. <project xmlns="http://maven.apach ...
- mybatis和spring框架的整合
Mybatis+Sping整合 mybatis+spring整合 整合思路 思路:将mybatis框架的对象,交给spring管理. 把SqlSessionFactory对象,交给spring管理 把 ...
- mybatis和spring第一个整合程序
知识点: 一.mybatis创建dao代理对象 StudentDao dao = sqlSession.getMapper(StudentDao.class); List<Student> ...
- 2020最新SpringMVC教程【IDEA版】-springmvc从入门到精通
2021-06-28 思维导图 1/74p SpringMVC Web开发底层是servlet 2/74p SpringMVC Web开发步骤 3/74p SpringMVC 中央调度器创建sprin ...
- SSM学习——SSM整合案例(Spring+SpringMVC+Mybatis)(13)
这里写目录标题 要求 Spirng整合Mybatis Spirng整合SpringMVC 表与实体类的创建 创建层级 Dao层 Service层 controller层 接口测试 业务层`servic ...
- SSM整合(2): spring 与 mybatis 整合
在进行完spring与springmvc整合之后, 继续 spring与mybatis的整合. 既然是操作数据库, 那必然不能缺少了连接属性 一. db.properties jdbc.driver= ...
- OSGI企业应用开发(十五)基于Spring、Mybatis、Spring MVC实现一个登录应用
前面文章中,我们已经完成了OSGI应用中Spring.Mybatis.Spring MVC的整合,本篇文章我们就在这个基础上来完成一个简单的登录应用,其中用户名和密码需要从数据库中查询. 前面文章中, ...
- spring boot mybatis 整合_两大热门框架 Spring 与 Mybatis 如何整合呢?
整合的方式 新建 maven 项目 引入依赖包 配置资源文件 案例实操 新建 maven 项目 新建 maven 项目 spring_mybatis 目录结构如下: 主目录包: com.xxx.d ...
- 史上最全最细的SpringMVC教程
SpringMVC是强大的Web开发框架,基于Spring. 课程从基础开始逐步讲解SpringMVC框架Web应用的相关技术点.涵盖了SpringMVC基础内容以及与Spring框架集成(如IoC容 ...
- idea集成spring+spring MVC+mybatis问题
1.如果mybatis的xml文件放在java文件夹下(idea不会编译src的java目录的xml文件),需要在pom.xml中加入以下代码: <build><resources& ...
最新文章
- (0036) iOS 开发之HTTPS、SSL验证
- github建立静态网站,域名解析和跳转
- 网易云音乐:基于分布式图学习的推荐系统优化之路
- 稳定高效大型系统架构---集群中间件开发
- 即时通讯 我穿上球鞋
- mysql语句事务回滚_mysql语句,事务处理回滚的问题。
- python成绩分析系统_用Python编写学生成绩分析系统
- 修改element插件样式---select样式
- 小程序上传图片前将图片剪切成固定尺寸
- DevOps平台的“精益创业”之路
- 南京信息工程大学计算机考研怎么样,南京信息工程大学就业怎么样,考研好不好?...
- 《透视盒马:新零售操作系统的秘密》
- 【已解决】ansys打开没有主界面,只有output窗口怎么回事?
- linux中使用crontab出现crontab: installing new crontab
- 服务器安装内置无线网卡,笔记本怎么安装内置网卡 笔记本内置无线网卡安装步骤【图文】...
- 惠普笔记本无法调节亮度解决办法【成功解决记录贴】
- 蓝牙单火开关(天猫精灵生态)方案
- NAO机器人——运动控制(1)
- Android 腾讯tbs适配Android Q啦~~
- 北大AI公开课2019 | 驭势科技吴甘沙:AI时代的自动驾驶趋势