所谓的ssm框架就是mybatis+spring+springmvc,下面一篇文章将带你了解如何整合ssm。

我上传了一个免费的解释资源,里面有这篇文章的一些个人解释,说的很幽默,简单的说明了为什么要有这个东西,帮助大家理解,有兴趣可以去下一下对照一下(拿来把你!)

ssm框架整合的个人说明-Java文档类资源-CSDN文库

大部分配置不需要再去改动,修改数据库配置以及包名,直接拿来用即可。

目录

pom.xml

mvc功能实现

实体类

持久层功能接口Dao

持久层Mapper映射文件

业务层接口Service

业务层实现类

mybatis配置

mybatis-config.xml

数据库的配置信息

database.properties文件

spring配置

spring-dao.xml

spring-service.xml

applicationContext.xml

SpringMVC配置

spring-mvc.xml

web.xml


pom.xml

首先介绍的是依赖,这些是用到的最基本的依赖

<!--    依赖:Junit,数据库驱动,连接池,Servlet,jsp,mybatis-spring,spring--><dependencies><!--Junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><!-- 数据库连接池 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</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><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--Mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version></dependency><!--Spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency></dependencies>
<!--    静态资源导出--><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>

mvc功能实现

实体类

Books

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {private int bookID;private String booName ;private int bookCounts;private String detail;
}

持久层功能接口Dao

BookMapper

public interface BookMapper {//增加一本书int addBook(Books books);//删除一本书int deleteBookById(@Param("bookId") int id);//更新一本书int updateBook(Books books);//查询一本书Books queryBookById(@Param("bookId")int id);//查询全部的书List<Books> queryAllBook();
}

持久层Mapper映射文件

BookMapper.xml建议最好与BookMapper类放在同一包下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.LL.dao.BookMapper"><insert id="addBook" parameterType="Books">insert into ssmbuild.books(bookName,bookCounts,detail)values(#{bookName},#{bookCounts},#{detail});</insert><delete id="deleteBookById" parameterType="int">delete from ssmbuild.books where bookID=#{bookId}</delete><update id="updateBook" parameterType="Books">update ssmbuild.booksset  = bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}where bookID=#{bookID};</update><select id="queryBookById" resultType="Books">select *from ssmbuild.bookswhere bookID=#{bookId}</select><select id="queryAllBook" resultType="Books">select * from ssmbuild.books</select></mapper>

业务层接口Service

BookService,真实的业务逻辑

public interface BookService {//增加一本书int addBook(Books books);//删除一本书int deleteBookById( int id);//更新一本书int updateBook(Books books);//查询一本书Books queryBookById(int id);//查询全部的书List<Books> queryAllBook();
}

业务层实现类

BookServicelmpl

@Service
public class BookServiceImpl implements BookService{//service调dao层:组合Dao@Autowiredprivate BookMapper bookMapper;public void setBookMapper(BookMapper bookMapper) {this.bookMapper = bookMapper;}@Overridepublic int addBook(Books books) {return bookMapper.addBook(books);}@Overridepublic int deleteBookById(int id) {return bookMapper.deleteBookById(id);}@Overridepublic int updateBook(Books books) {return bookMapper.updateBook(books);}@Overridepublic Books queryBookById(int id) {return bookMapper.queryBookById(id);}@Overridepublic List<Books> queryAllBook() {return bookMapper.queryAllBook();}
}

mybatis配置

mybatis-config.xml

在这里,我们将配置数据源的信息交给spring去做,只给实体类起一个别名,注册mapper。

<?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>
<!--    配置数据源,交给spring去做--><typeAliases><package name="com.LL.pojo"/></typeAliases><mappers><mapper class="com.LL.dao.BookMapper"></mapper></mappers></configuration>

数据库的配置信息

database.properties文件

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
jdbc.username=root
jdbc.password=123456789

spring配置

spring-dao.xml

1.配置数据库,先导入数据库信息文件,然后在配置一个c3p0的数据库连接池

2.SqlSessionFactory是mybatis的一个接口,为我们提供SqlSession对象,我们只需要为其配置两个属性。

1)声明数据源,将配置好的DataSource注入到dataSource属性中

2)将配置好的mybatis-config.xml注入到configLocation中

即可得到一个SqlSessionFactorybean。

扫描dao文件包,为其注入sqlSessionFactory,这样使用时不需要我们再去配置。

<?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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--1.关联数据库配置--><!--导入配置文件--><context:property-placeholder location="classpath:database.properties"/><!--2.连接池dbcp:半自动化 不能自动连接c3p0:半自动化操作(自动化加载配置文件,而且可以自动设置到对象中!)druid: hikari:--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property><!--c3p0连接池的私有属性--><property name="minPoolSize" value="10"/><property name="maxPoolSize" value="30"/><!--关闭连接后不自动commit--><property name="autoCommitOnClose" value="false"/><!--获取连接超时时间--><property name="checkoutTimeout" value="10000"/><!--当获取连接失败重试次数--><property name="acquireRetryAttempts" value="2"/></bean><!--3.sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource"" ref="dataSource"/><!--绑定mybatis配置文件--><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!--配置dao接口扫描包,动态的实现了Dao接口可以注入到Spring容器中!--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--注入sqlSessionFactory--><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property><!--要扫描的dao--><property name="basePackage" value="com.LL.dao"></property></bean></beans>

spring-service.xml

在这个文件中,我们配置自动扫描功能,这样我们在实现业务类时可以通过bean的方式去配置,也可以通过(@Autowired)自动注入的方式去配置

<?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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--1.扫描service下的包--><context:component-scan base-package="com.LL.service"/><!--2.将我们的所有业务类注入到spring中,可以通过配置,或者注解实现--><bean id="BookServiceImpl" class="com.LL.service.BookServiceImpl"><property name="bookMapper" ref="bookMapper"/></bean><!--3.声明式事务--><bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--注入数据源--><property name="dataSource" ref="dataSource"></property></bean><!--4.aop事务支持--></beans>

applicationContext.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><import resource="classpath:spring-dao.xml"/><import resource="classpath:spring-mvc.xml"/><import resource="classpath:spring-service.xml"/></beans>

SpringMVC配置

spring-mvc.xml

1.开始springmvc注解驱动

2.静态资源过滤,让Spring MVC不处理静态资源 .css .js .html .mp3 .mp4等

3.自动扫描包,让指定包下的注解生效,由IOC容器统一管理

4.视图解析器,自动为url添加前缀和后缀。

<?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:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"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.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--1.注解驱动--><mvc:annotation-driven/><!--2.静态资源过滤--><mvc:default-servlet-handler/><!--3.扫描包:controller--><context:component-scan base-package="com.LL.controller"/><!--4.视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean>
</beans>

web.xml

DispatchServlet负责协调和组织不同组件完成请求处理并返回响应工作,DispatcherServlet 是 SpringMVC统一的入口,所有的请求都通过它。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--DispatchServlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationConfig.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--乱码过滤--><filter><filter-name>encoding</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>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--Session--><session-config><session-timeout>15</session-timeout></session-config>
</web-app>

本篇文章是学习秦疆老师的课程整合的,老师的文章放在下面:

狂神说SpringMVC05:整合SSM框架 (qq.com)

一篇文章教你整合ssm配置,可以收藏。相关推荐

  1. 一篇文章教你学会使用SpringBatch 监听器Listener

    文章目录 一.SpringBatch监听器 二.搭建SpringBatch开发环境 三.监听器详细介绍 1.JobExecutionListener 2.StepExecutionListener 3 ...

  2. 一篇文章教你学会使用SpringBoot实现文件上传和下载

    文章目录 一.搭建SpringBoot开发环境 1.创建项目 2.配置application.properties参数 3.实体响应类和异常信息类 4.创建FileController 二.接口测试 ...

  3. 一篇文章教你学会实现模糊搜索结果的关键词高亮显示

    一篇文章教你学会实现模糊搜索结果的关键词高亮显示 话不多说,先看效果图: 代码如下: <!DOCTYPE html> <html lang="en">< ...

  4. 一篇文章教你学会如何使用CSS中的雪碧图(CSS Sprite)

    一篇文章教你学会如何使用CSS中的雪碧图(CSS Sprite) 一.什么是雪碧图? 雪碧图(CSS Sprite)又叫CSS精灵图,是一种网页图片应用处理方式,他允许你将一个页面设计到 所有零星图片 ...

  5. MySQL优化-一篇文章就够了(转发加收藏吧)

    关注我,一个仍存梦想的屌丝程序员,每天为你分享高质量编程博客. 回复 "代金券"  免费获取腾讯云和阿里云代金券 前言 说起MySQL的查询优化,相信大家收藏了一堆:不能使用SEL ...

  6. 【手把手教你整合SSM项目并且完成入门项目到成功运行!!!】

    整合ssm框架的步骤 一. 准备工作:创建一个存放学生数据的数据库表 CREATE DATABASE `ssm_student`; USE `ssm_student`; DROP TABLE IF E ...

  7. 手把手教你整合SSM实现一个简单的CRUD项目

    目录 项目笔记 一.项目简介 二.项目步骤 1.搭建数据库环境 2.dao层编写(基于mybatis框架) 3.service层编写(基于spring框架) 4.controller层编写(基于spr ...

  8. 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)详细教程重要

    前言 SSM(Spring+SpringMVC+Mybatis)是目前较为主流的企业级架构方案,不知道大家有没有留意,在我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教 ...

  9. (第2篇)一篇文章教你轻松安装hadoop

    摘要: 这篇文章将会手把手教你安装hadoop,只要你细心按照文章中的步骤操作,hadoop肯定能正确安装,绝对不会让你崩溃 博主福利 给大家赠送一套hadoop视频课程 授课老师是百度 hadoop ...

最新文章

  1. 【Java 网络编程】TCP API 简介 ( Socket | ServerSocket )
  2. I2C总线及AT24C02读写实验报告
  3. Python+selenium自动化:页面加载慢、超时加载情况下内容已经加载完毕的快速执行脚本解决方案,页面加载时间过长优化方案
  4. 【控制】《多无人机协同控制技术》周伟老师-第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现
  5. (转)Linux环境变量的设置和查看方法
  6. CentOS下的抓包服务:rpcapd(WinPcap)
  7. can通道采样频率_哪个是嵌入式开发中最常用的外部总线:RS232?RS485?CAN?LIN?……...
  8. 【读书笔记】.NET本质论第四章-Programming with Type(Part Two)
  9. 云小课 | 华为云KYON:网段零修改上云,简单又好用
  10. 学习小感之浅谈学习兴趣之路
  11. 新生儿操作系统操作手册
  12. BitBake用户手册-3.语法和操作
  13. 如何利用python计算即期利率_即期利率的定义_即期利率的计算公式_即期利率和远期利率...
  14. Java实现 蓝桥杯 算法训练 递归求二项式系数
  15. 均值不等式中考_数学不等式解题技巧
  16. 计算机三级网络技术知识点大全(七)
  17. 我的NVIDIA开发者之旅-Jetson Nano 2gb教你怎么训练模型(完整的模型训练套路)
  18. 阿克曼(Ackmann)函数
  19. 科学计算与matlab语言期末答案,科学计算与MATLAB语言答案
  20. android.intent.action.MAIN和singleTask模式 的奇怪问题

热门文章

  1. 身份信息认证服务器,在线身份认证解决方案
  2. python20培训班
  3. document.write
  4. IceCTF - All your Base are belong to us
  5. 微信公众号验证Token
  6. 《炬丰科技-半导体工艺》硅片湿法清洗技术
  7. 腾讯音乐娱乐数据分析4.15笔试
  8. SNMP MIB库的介绍
  9. 公司是船,我在船上。
  10. 95年有g510台式计算机吗,台式电脑太老了换cpu能行吗?