毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合;比如我先实现Mybatis框架的配置,然后再通过测试看操作数据库能否成功,如果测试成功了我们再去使用Spring整合Mybatis;当然SpringMVC也一样,先编写SpringMVC所需要的一些配置项,测试web层能够实现之后再去使用Spring整合SpringMVC;

1.导入坐标

 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>compile</scope></dependency>
<!--    与spring相关--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.2.9.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.13</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.0.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.9.RELEASE</version></dependency><!--    servlet和jsp--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><!--    与mybatis相关--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.19</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.2</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
<!--EL标签库--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.12</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.12</version></dependency></dependencies>

2.创建数据表

3.编写Account实体类

public class Account implements Serializable {private int id;private String name;private double money;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}@Overridepublic String toString() {return "Account{" +"id=" + id +", name='" + name + '\'' +", money=" + money +'}';}
}

3.配置jdbc.properties资源文件

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
jdbc.username=root
jdbc.password=hao20001010

4.Spring整合Myabits(编写Spring核心配置文件applicationContext.xml)
将Myabtis的相关操作交给spring管理(不用再配置Mybaits的核心文件SqlMapConfig.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!--    开启注解扫描,只希望处理service和dao,controller不需要我们处理--><context:component-scan base-package="com.hao">
<!--        配置哪些注解不扫描--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--    spring整合mybatis框架-->
<!--    加载jdbc.properties文件--><context:property-placeholder location="classpath:jdbc.properties"/>
<!--    配置连接池--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>
<!--    配置工厂对象SqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/></bean>
<!--    接口所在的包--><bean id="scannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.hao.dao"/></bean><!--    配置spring框架的声明式事务管理-->
<!--    配置事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean>
<!--    配置事务通知--><tx:advice id="tx" transaction-manager="transactionManager"><tx:attributes><tx:method name="find*" read-only="true"/><tx:method name="*" isolation="DEFAULT"/></tx:attributes></tx:advice>
<!--    配置AOP增强--><aop:config><aop:advisor advice-ref="tx" pointcut="execution(* com.hao.service.impl.*ServiceImpl.*(..))"/></aop:config>
</beans>

5.配置SpringMVC的核心文件(spring-mvc.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--    开启注解扫描--><context:component-scan base-package="com.hao"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--    配置视图解析器--><bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>
<!--    过滤静态资源--><mvc:resources mapping="/css/**" location="/css/"/><mvc:resources mapping="/css/**" location="/images"/><mvc:resources mapping="/js/**" location="/js/"/>
<!--    开启springmvc注解的支持--><mvc:annotation-driven/>
</beans>

6.有关web.xml的配置(SpringMVC的前端控制器,加载spring核心配置文件,编码过滤等)

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><!--  配置前端控制器-->
<web-app><display-name>Archetype Created Web Application</display-name><!--  配置前端控制器--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--    加载spring-mvc配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--  配置编码过滤器--><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><!--  配置Spring的监听器,默认只加载web-inf下的applicationContext.xml--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
<!--  让监听器找该位置下的applicationContext.xml文件,而不是默认的--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param></web-app>

Spring与SpringMVC是天生无缝集成的

7.编写Dao层

@Repository
public interface AccountDao {/*** 查询所有账户信息* @return list*/@Select("select * from account")public List<Account> findAll();/*** 保存账户信息*/@Insert("insert into account (name,money) values(#{name},#{money})")public void saveAccount(Account account);
}

8.编写Service层

public interface AccountService {/*** 查询所有账户信息* @return list*/public List<Account> findAll();/*** 保存账户信息*/public void saveAccount(Account account);
}
@Service
public class AccountServiceImpl implements AccountService {@Autowiredprivate AccountDao accountDao;@Overridepublic List<Account> findAll() {System.out.println("业务层,查询所有的账户。。");List<Account> list = accountDao.findAll();return list;}@Overridepublic void saveAccount(Account account) {System.out.println("业务层,保存账户。。");accountDao.saveAccount(account);}
}

9.编写Controller层

@Controller
@RequestMapping("/account")
public class AccountController {@Autowiredprivate AccountService service;@RequestMapping("/findAll")public String findAll(Model model){System.out.println("表现层,查询所有用户");List<Account> list = service.findAll();model.addAttribute("list",list);return "list";}//自动将前端数据封装到Account类里面@RequestMapping("/save")public void save(Account account, HttpServletRequest request, HttpServletResponse response) throws IOException {service.saveAccount(account);response.sendRedirect(request.getContextPath()+"/account/findAll");return;}
}

10.编写前端页面

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body><a href="account/findAll">测试</a><form action="/account/save" method="post">姓名:<input type="text" name="name"/><br>金额:<input type="text" name="money"/><br><input type="submit" value="保存"></form>
</body>
</html>

list.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Title</title>
</head>
<body><h3>查询了所有的用户信息</h3><c:forEach items="${list}" var="account">${account.name}${account.money}</c:forEach>
</body>
</html>

11.测试即可

史上最详细的SSM框架整合(Spring、SpringMVC、Mybatis)相关推荐

  1. 如何部署SSM框架(Spring+SpringMVC+MyBatis)到SAE(新浪云服务器)图文教程

    在学习cocos2dx手游开发的过程中,为了实现用户注册.用户登陆和世界排行榜这些模块,需要用到服务器来搭建平台.以前都是 在本地搭建服务器,在本科期间使用过IIS和Tomcat,感觉在本地搭建服务器 ...

  2. idea创建SSM项目(Spring+SpringMVC+MyBatis)

    idea创建SSM项目(Spring+SpringMVC+MyBatis) 项目创建 创建数据库 自动生成mapper 先做一个简单的测试 以下配置 可参考博客https://blog.csdn.ne ...

  3. SSM整合——Spring+SpringMVC+MyBatis整合

    文章目录 1. 数据库环境 2. 项目基本结构搭建 3. 配置MyBatis 4. 配置Spring 5. 配置SpringMVC 6. Controller和视图层编写 7. 配置Tomcat,进行 ...

  4. MAVEN整合Spring+SpringMVC+Mybatis

    2016/1/20 14:47:28 原创,转载请注明出处 曾经看过<那些年我们一起追过的女孩>,片中有个比较经典的画面,至今记忆犹新,柯景腾多年后,做了一名作家,每天面对电脑码字,背后是 ...

  5. 史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)

    https://blog.csdn.net/qq_44543508/article/details/100192558

  6. 史上最详细springboot vue UEditor整合(包括遇到的各种坑)

    Vue中引入UEditor看这篇教程https://blog.csdn.net/kshon/article/details/102667318 接下来说说springboot中配置UEditor遇到的 ...

  7. SSM 框架整合 spring 发送邮件功能实现!

    基于SSM的 spring 发送邮件的实现 由于考虑到项目中需要,如果程序出现异常或其它问题,可以发送邮件来及时提醒后台维护人员处>理.所以目前考虑使用JavaMail来实现邮件发送!如下,是我 ...

  8. 主流 SSM 框架Java 后台 springmvc mybatis 有代码生成器

    获取[下载地址] QQ: 313596790 官网 http://www.fhadmin.org/ A 代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [ ...

  9. SSM框架 mybatis-plus + spring + springmvc + redis 水果生鲜产品交易平台

    前言 此项目为小型的生鲜产品交易平台,项目由前台展示和后端构成. 项目是基于 JQuery + AXios + Spring-MVC + Redis + Mybatis-Plus 的,项目地址在 gi ...

最新文章

  1. win8 网络 连接计算机名称,win8本地网络联接的名字怎么改
  2. spring核心框架体系结构(jar包依赖)
  3. HTML5 placeholder在低版本浏览器的解决方法
  4. SQL SERVER 执行计划各字段注释
  5. prometheus之DCGM监控GPU
  6. android字符串复制到剪贴板
  7. async spring 默认线程池_Spring定时任务高级使用篇
  8. Android usb主从模式切换(九)
  9. 推荐几个很好的资源下载网站
  10. rsync用法详细解释
  11. android 黑白屏问题
  12. 八大处理器最强手机盘点 手机CPU混战(组图)
  13. 【12】MV剪辑案例【13】宣传片剪辑案例
  14. 解决C#界面假死问题
  15. CIMISS数据获取流程
  16. instrument Time Profiler总结
  17. linux下 etho网卡设置
  18. 建模simulink - xpc调试手段
  19. 正大期货新闻:油价今年有望“长期”处在100美元上方
  20. C语言学习之假如我国国民生产总值的年增长率为7%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1+r)ⁿ r为年增长率,n为年数,p为与现在相比的倍数。

热门文章

  1. 实现 设置text控件的标题根据维度成员选择不同而变化
  2. 腐蚀rust研究台抽奖_延迟焦化装置的腐蚀风险分析
  3. linux 环境变量 term,linux – TERM环境变量未设置
  4. 安装.net5.0后怎么在vs里选择_Visual Stdio 2019(或其它版本)怎样全部安装到非系统盘的实现方法(小白版)...
  5. php sprintf 后面补0,PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
  6. pb 修改数据窗口种指定字段位置_第三章 Python数据类型 容器
  7. java mysql 操作类_Java 数据库简单操作类
  8. Navicat mysql 加索引_mysql 索引 (Navicat添加索引)
  9. linux 查redis状态_干货:用案例代码详解Redis中的事件驱动模型
  10. mysql 语句_如何记录MySQL执行过的SQL语句