一、整合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整合开发)相关推荐

  1. 整合SSM(Spring+SpringMVC+MyBatis)-增删改查(上)

    新建maven web工程,添加web.xml 添加pom文件以及依赖,update项目.然后添加maven依赖. <project xmlns="http://maven.apach ...

  2. mybatis和spring框架的整合

    Mybatis+Sping整合 mybatis+spring整合 整合思路 思路:将mybatis框架的对象,交给spring管理. 把SqlSessionFactory对象,交给spring管理 把 ...

  3. mybatis和spring第一个整合程序

    知识点: 一.mybatis创建dao代理对象 StudentDao dao = sqlSession.getMapper(StudentDao.class); List<Student> ...

  4. 2020最新SpringMVC教程【IDEA版】-springmvc从入门到精通

    2021-06-28 思维导图 1/74p SpringMVC Web开发底层是servlet 2/74p SpringMVC Web开发步骤 3/74p SpringMVC 中央调度器创建sprin ...

  5. SSM学习——SSM整合案例(Spring+SpringMVC+Mybatis)(13)

    这里写目录标题 要求 Spirng整合Mybatis Spirng整合SpringMVC 表与实体类的创建 创建层级 Dao层 Service层 controller层 接口测试 业务层`servic ...

  6. SSM整合(2): spring 与 mybatis 整合

    在进行完spring与springmvc整合之后, 继续 spring与mybatis的整合. 既然是操作数据库, 那必然不能缺少了连接属性 一. db.properties jdbc.driver= ...

  7. OSGI企业应用开发(十五)基于Spring、Mybatis、Spring MVC实现一个登录应用

    前面文章中,我们已经完成了OSGI应用中Spring.Mybatis.Spring MVC的整合,本篇文章我们就在这个基础上来完成一个简单的登录应用,其中用户名和密码需要从数据库中查询. 前面文章中, ...

  8. spring boot mybatis 整合_两大热门框架 Spring 与 Mybatis 如何整合呢?

    整合的方式 新建 maven 项目 引入依赖包 配置资源文件 案例实操 新建 maven 项目 新建 maven 项目 spring_mybatis 目录结构如下: 主目录包: ​ com.xxx.d ...

  9. 史上最全最细的SpringMVC教程

    SpringMVC是强大的Web开发框架,基于Spring. 课程从基础开始逐步讲解SpringMVC框架Web应用的相关技术点.涵盖了SpringMVC基础内容以及与Spring框架集成(如IoC容 ...

  10. idea集成spring+spring MVC+mybatis问题

    1.如果mybatis的xml文件放在java文件夹下(idea不会编译src的java目录的xml文件),需要在pom.xml中加入以下代码: <build><resources& ...

最新文章

  1. (0036) iOS 开发之HTTPS、SSL验证
  2. github建立静态网站,域名解析和跳转
  3. 网易云音乐:基于分布式图学习的推荐系统优化之路
  4. 稳定高效大型系统架构---集群中间件开发
  5. 即时通讯 我穿上球鞋
  6. mysql语句事务回滚_mysql语句,事务处理回滚的问题。
  7. python成绩分析系统_用Python编写学生成绩分析系统
  8. 修改element插件样式---select样式
  9. 小程序上传图片前将图片剪切成固定尺寸
  10. DevOps平台的“精益创业”之路
  11. 南京信息工程大学计算机考研怎么样,南京信息工程大学就业怎么样,考研好不好?...
  12. 《透视盒马:新零售操作系统的秘密》
  13. 【已解决】ansys打开没有主界面,只有output窗口怎么回事?
  14. linux中使用crontab出现crontab: installing new crontab
  15. 服务器安装内置无线网卡,笔记本怎么安装内置网卡 笔记本内置无线网卡安装步骤【图文】...
  16. 惠普笔记本无法调节亮度解决办法【成功解决记录贴】
  17. 蓝牙单火开关(天猫精灵生态)方案
  18. NAO机器人——运动控制(1)
  19. Android 腾讯tbs适配Android Q啦~~
  20. 北大AI公开课2019 | 驭势科技吴甘沙:AI时代的自动驾驶趋势

热门文章

  1. JFlash ARM对stm32程序的读取和烧录
  2. DRAM、SRAM、SDRAM、DDRSDRAM的区别
  3. LeetCode5-最长回文子串原理及Python实现
  4. 设计模式--建造者(Builder)模式
  5. buu Alice与Bob
  6. OPTEE的内存管理 :页表的创建过程
  7. android指纹fingerprint学习总结
  8. go项目中使用数据库的配置文件
  9. php 自带sql防注入函数,php 最简单sql防注入函数与方法_PHP教程
  10. (35)3环PEB断链