前言

一,工程创建

1.新建Maven项目,项目架构增加web支持

2.Maven本地仓库配置

3.集成Tomcat,搭建web环境

二,导入依赖

三,配置文件编写

1.web环境配置文件

2.spring整合环境配置文件

2.1 controller层(springmvc)----springmvc_controller配置文件

2.2 service层(spring)----application_service配置文件

2.3 dao层(spring整合mybatis)----applicationContext_dao配置文件

四,项目包结构

五,代码实现

1.controller层

DeptController类编写

2.doman层

Dept数据库映射类编写

3.mapper层

DeptMapper代理接口编写

DeptMapper.xml数据库映射文件编写

4.service层

DeptService接口编写

DeptServiceImpl实现类编写

5.最终项目结构

六,运行测试


前言

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。虽然现在后端主流开发API的框架是springboot,但ssm的学习依然重要,也是springboot的基石。内容有点长,耐心看完,看完就会,没有耐心的可以直接向我要源码,讲解非常细致。


很多人说ssm配置起来太麻烦了,不如springboot,看完我这篇,让你在ssm阶段像SpringBoot一样快速搭建,大大提高开发效率

一,工程创建

1.新建Maven项目,项目架构增加web支持

2.Maven本地仓库配置

 配置项目名与项目路径

 这里配置Maven,虽然Idea自带Maven,但尽量用自己的Maven,更好地管理项目的依赖,因为Maven是国外的,下载依赖时速度非常慢,自己maven的设置文件配一个镜像,淘宝或者阿里云的都可以,不知道如何配置的可以看我之前发的博客

 配置好后点击finish,之后项目像这样就表明项目创建成功(生成的maven项目需要手动创建java和resource包)

3.集成Tomcat,搭建web环境

二,导入依赖

约定大于配置!约定大于配置!约定大于配置!

简单来说,如果你所用工具的约定和你的期待相符,就可以省去配置;不符合的话,你就要通过相关的配置来达到你所期待的方式。

在Pom中导入相关的依赖,这些依赖包你管用,不管用再加,hh

只写了依赖,把依赖复制过去就可以,里面的依赖目前缺一不可!!!配置好后记得刷新,确保项目中存在相关依赖

  <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--servlet依赖--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><!--spring依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.16</version></dependency><!--springmvc--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.16</version></dependency><!--springmvc直接放回对象,自动生成Json返回--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.1</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><!--mybatis--><dependency><groupId>org.example</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!--实体类使用注解即可生成Get和Setter方法--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><!--spring整合mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><!--数据源,这里我用的是阿里的德鲁伊数据源--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><!--spring整合jdbc支持--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.16</version></dependency></dependencies>

三,配置文件编写

先搞定配置,因为,约定大于配置大于编码

先创建spring的几个配置文件

我会以数据库的一个部门表来做测试,所以请先创建一个部门表

DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept`  (`deptno` int(0) NOT NULL DEFAULT 0,`dname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`db_source` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = MyISAM AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic;INSERT INTO `dept` VALUES (1, '开发部', 'db01');
INSERT INTO `dept` VALUES (2, '人事部', 'db01');
INSERT INTO `dept` VALUES (3, '财务部', 'db01');
INSERT INTO `dept` VALUES (4, '市场部', 'db01');
INSERT INTO `dept` VALUES (5, '运维部', 'db01');

1.web环境配置文件

web.xml中的配置,代码缺一不可!!!

<!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><!--向核心控制器告知spring的配置文件在哪--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext*.xml</param-value></context-param><!--配置spring的监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--springmvc的核心控制器,以后请求讲由springmvc接管--><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:springmvc-controller.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></web-app>

2.spring整合环境配置文件

由于springmvc配置文件需要用于当做前端核心控制器,所以不交与spring"扫描"

配置文件中报扫描路径一定要与创建的相关文件路径对应哦

2.1 controller层(springmvc)----springmvc_controller配置文件

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"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/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--配置包扫描--><context:component-scan base-package="com.lyj.controller"/><!--配置驱动,使注解生效--><mvc:annotation-driven/><!--配置静态资源访问--><mvc:default-servlet-handler/><!--配置资源视图控制器,添加页面跳转时的前后缀--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean>
</beans>​

2.2 service层(spring)----applicationContext_service配置文件

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"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/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--目前只需要配置包臊面就行了--><context:component-scan base-package="com.lyj.service"/>
</beans>

2.3 dao层(spring整合mybatis)----applicationContext_dao配置文件

里面的数据源改为自己的即可

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"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/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--数据源配置,这里用的是德鲁伊的,需要导依赖--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/db01"/><property name="username" value="root"/><property name="password" value="root"/></bean><!--spring集成mybatis,SqlSessionFactoryBean交给spring创建--><bean class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/></bean><!--填写mapper接口的基本路径--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.lyj.mapper"/></bean></beans>

四,项目包结构

创建对应的项目文件结构

五,代码实现

1.controller层

DeptController类编写

package com.lyj.controller;import com.lyj.domain.Dept;
import com.lyj.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.util.List;// @RestController//当这个控制器全是返回json数据,不进行页面跳转时,用这个
@Controller
@RequestMapping("/dept")
public class DeptController {@Autowiredprivate DeptService deptService;@RequestMapping("/selectAll")@ResponseBody//此注解用于直接返回json数据,而不是跳转页面public List<Dept> test(){List<Dept> deptList = deptService.selectAll();return deptList;}@RequestMapping("/selectAll1")public String test1(Model model){List<Dept> depts = deptService.selectAll();model.addAttribute("depts",depts);return "dept";//页面跳转,根据springmvc配置的前后缀跳转}
}

2.doman层

Dept数据库映射类编写

(此处用了lombok的@Data注解,省去生成get和set方法,注意使用lombok需要安装lombok插件)

package com.lyj.domain;import lombok.Data;@Data
public class Dept {private int deptno;private String dname;private String db_source;
}

3.mapper层

DeptMapper代理接口编写

package com.lyj.mapper;import com.lyj.domain.Dept;
import org.apache.ibatis.annotations.Mapper;import java.util.List;
@Mapper
public interface DeptMapper {public List<Dept> selectAll();
}

DeptMapper.xml数据库映射文件编写

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lyj.mapper.DeptMapper"><select id="selectAll" resultType="com.lyj.domain.Dept">select * from dept;</select></mapper>

4.service层

DeptService接口编写

package com.lyj.service;import com.lyj.domain.Dept;import java.util.List;public interface DeptService {public List<Dept> selectAll();
}

DeptServiceImpl实现类编写

package com.lyj.service.impl;import com.lyj.domain.Dept;
import com.lyj.mapper.DeptMapper;
import com.lyj.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class DeptServiceImpl implements DeptService {@Autowiredprivate DeptMapper deptMapper;@Overridepublic List<Dept> selectAll() {return deptMapper.selectAll();}
}

5.最终项目结构

六,运行测试

项目启动,跳到浏览器输入请求路径localhost:8080/dept/selectAll

总结

以上就是今天要讲的内容,都是手撕的,创作不易,本文介绍了ssm整合的步骤,能使我们快速便捷地处理数据和页面跳转。搭建好之后,即可开始我们的项目业务处理,肆意的发挥吧

SSM整合,手把手教程,详解思路讲解相关推荐

  1. 二、SSM整合按步骤详解(清晰的思路加代码)从零开始一步步整合【二】(完结)

    接上一章节继续SSM整合按步骤详解(清晰的思路加代码)从零开始一步步整合[一] 上面讲了Spring和SpringMVC的整合,现在开始下一步,先来搭建一下MyBatis的环境 我们先来看看目录结构图 ...

  2. 一、SSM整合按步骤详解(清晰的思路加代码)从零开始一步步整合【一】

    Spring SpringMVC MyBatis,对于这三者的整合,我们先一步步来分析 首先,我们要明确一点,是通过Spring来整合SpringMVC,Spring来整合MyBatis 我们先来做一 ...

  3. es springboot 不设置id_es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

    注意:适用于springboot或者springcloud框架 1.首先下载相关文件 2.然后需要去启动相关的启动文件 3.导入相关jar包(如果有相关的依赖包不需要导入)以及配置配置文件,并且写一个 ...

  4. 视频教程-Oracle数据库从入门到实用教程详解-Oracle

    Oracle数据库从入门到实用教程详解 全栈工程师,2010年从事软件开发以及软件教育培训工作,至今将近十余年,在项目的开发,设计,到管理上积累了丰富的实战经验,教学风格上通俗易懂,问题解答环节一对一 ...

  5. SAE上传web应用(包括使用数据库)教程详解及问题解惑

    2019独角兽企业重金招聘Python工程师标准>>> 转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995 ...

  6. golang导入git包_使用go module导入本地包的方法教程详解

    go module 是Go1.11版本之后官方推出的版本管理工具,并且从 Go1.13 版本开始, go module 将是Go语言默认的依赖管理工具.到今天 Go1.14 版本推出之后 Go mod ...

  7. Linux卸载搜狐,双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个!...

    3. 随后,点击"引导",可以设置开机的启动系统了 4. 假设我们要删除win10系统,那么我们就将win10操作系统开机引导删除,选择win10然后选择"删除" ...

  8. 史上最简单MySQL教程详解(进阶篇)之存储引擎介绍及默认引擎设置

    什么是存储引擎? MySQL存储引擎种类 MyISAM 引擎 InnoDB引擎 存储引擎操作 查看存储引擎 存储引擎的变更 修改默认引擎 什么是存储引擎? 与其他数据库例如Oracle 和SQL Se ...

  9. go语言导入git包_使用go module导入本地包的方法教程详解

    go module 是Go1.11版本之后官方推出的版本管理工具,并且从 Go1.13 版本开始, go module 将是Go语言默认的依赖管理工具.到今天 Go1.14 版本推出之后 Go mod ...

最新文章

  1. android 显示yuv数据格式,YUV数据格式的理解
  2. oracle 登录rman,Oracle 学习之RMAN(二)由此开始
  3. 手摇计算机教程视频,使用手摇计算机的照片
  4. CSS设置七彩的下拉菜单
  5. rabbitmq 在centos下的安装
  6. win7如何设置还原点
  7. 有规律的进行效果最好--打扫有感
  8. Python机器学习:PCA与梯度上升:008使用PCA对数据进行降噪
  9. transform对定位元素的影响
  10. c语言线程原理,线程池的原理和实现c语言
  11. 南京邮电大学812自动控制原理高分经验
  12. 单片机各种通信协议详解
  13. windows10商店应用离线安装方法
  14. 2022年低压电工题库及模拟考试
  15. 中国地图填色问题Python API(动态)
  16. mfc opengl 三维地形图_深圳pmax巨影三维扫描仪
  17. zigzag convert
  18. JS逆向字体反爬,某供应商平台反爬实践
  19. 话筒和扩音器的实现的原理,和关于RFID的解释
  20. (等价无穷小与幂级数)泰勒公式

热门文章

  1. 深度学习你需要了解的名词(中英文对照)
  2. UiPath Excel创建数据透视图(21.10现代设计体验)
  3. Mockito的@Mock与@MockBean
  4. WDS+MDT部署Windows7操作系统—部署操作系统
  5. html画一个立体苹果,使用ai绘画出卡通2.5D风格立体苹果手机的具体操作步骤
  6. 《梦境杀手》(Dreamkiller)完整硬盘版[压缩包]
  7. android studio手机下载闪退,androidstudio手机模拟器闪退
  8. alert弹框去掉里面的网址
  9. IT自学者看过来 发福利了!!! 拿走不谢
  10. Flutter 自定义水印拍照相机