文章目录:

1.SSM整合思路

1.1 两个容器的创建

1.2 SSM整合开发的步骤

2.SSM整合开发

2.1 项目的大体结构

2.2 使用Navicat创建一个表(student2)

2.3 IDEA中使用maven创建一个web项目

2.4 在pom.xml文件中添加相关依赖

2.5 在web.xml文件中。声明容器对象

2.6 创建项目中特定的包(entity、dao、service、controller)

2.7 编写mybatis、spring、springmvc的配置文件

2.7.1 mybatis

2.7.2 spring

2.7.3 springmvc

2.8 编写Java代码(实体类、dao接口和对应的mapper文件、service类、controller类)

2.8.1 创建一个实体类

2.8.2 创建实体类对应的dao接口和接口对应的mapper文件

2.8.3 创建dao接口对应的service接口和实现类

2.8.4 创建一个控制器类(接收并处理请求)

2.9 创建视图文件(jsp)

2.9.1 首页(index.jsp)

2.9.2 注册学生页面(addStudent.jsp)

2.9.3 注册成功和失败的页面(success.jsp、fail.jsp)

2.9.4 查询学生页面(queryStudent.jsp)

2.10 为项目配置tomcat,启动测试!!!

2.10.1 注册学生的测试结果

2.10.2 查询学生的测试结果

3.写在结尾!!!


1.SSM整合思路

SSM:Spring + SpringMVC + MyBatis,就是使用这三个框架的优势功能来完成一些项目的构建。三个框架分别对应了三层架构中的每一层。Spring: 业务逻辑层;SpringMVC:视图层;MyBatis:持久层。

SSM整合了话,就需要把对象交给容器,让容器去创建项目中要使用的Java对象,目前有两个容器。

第一个:Spring容器,Spring容器管理的是service和dao等对象,是业务逻辑层对象的容器。

第二个:SpringMVC容器,这个容器管理的是控制器对象,也就是视图层的对象。

1.1 两个容器的创建

Spring容器的创建:在web.xml文件中声明 监听器 ContextLoaderListener 这个功能框架中已经写好了,就是创建Spring的容器对象 WebApplicationContext,在创建 WebApplicationContext 对象时,读取Spring的配置文件,遇到<bean>标签或者注解,就可以创建service、dao等对象,这些对象最终都放在Spring容器中。

SpringMVC容器的创建:在web.xml文件中声明 中央调度器 DispatcherServlet,在这个servlet的 init() 方法中,创建了容器对象WebApplicationContext,在创建 WebApplicationContext 对象时,读取SpringMVC的配置文件,如果遇到相应的注解,则创建控制器对象,创建好的对象放在SpringMVC容器中。

1.2 SSM整合开发的步骤

  • 使用Navicat创建一个要操作的表。(也可以直接在IDEA中写sql语句来创建)
  • IDEA中使用maven创建一个web项目。
  • 在pom.xml文件中添加相关依赖。(spring、spring事务、springmvc、mybatis、mybatis-spring、mysql驱动、servlet、jsp、jackson、druid) 
  • 在web.xml文件中声明容器对象

         1)声明spring的监听器 ContextLoaderListener:创建spring容器对象(service、dao)。

         2)声明springmvc的中央调度器 DispatcherServlet:创建springmvc容器对象(controller)。

         3)声明字符集过滤器 CharacterEncodingFilter,解决post请求乱码的问题。

  • 创建项目中特定的包:entity、dao、service、controller。(package)
  • 编写mybatis配置文件、spring配置文件、springmvc配置文件。(xml)
  • 编写Java代码:实体类、dao接口和对应的mapper文件、service类、controller类,使用注解声明对象、给对象赋值。
  • 创建视图文件。(各种 jsp 页面,发起请求)
  • 启动 tomcat,测试!!!

2.SSM整合开发

2.1 项目的大体结构

在这个SSM整合开发的项目中,用到了这些内容(JavaSE就不多说了。。。Java Web相关的有:JDBC、HTML、JS、json、jQuery、Ajax、Tomcat、Servlet、JSP、EL,最后是框架:MyBatis、Spring、SpringMVC) 。

2.2 使用Navicat创建一个表(student2)

2.3 IDEA中使用maven创建一个web项目

2.4 在pom.xml文件中添加相关依赖

依赖项比较多,毕竟是三个框架整合在一起了!!!

    <!-- servlet依赖 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency>
    <!-- jsp依赖 --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2.1-b03</version><scope>provided</scope></dependency>
    <!-- jackson依赖 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency>
    <!-- spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency>
    <!-- spring事务依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.5.RELEASE</version></dependency>
    <!-- springmvc依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.5.RELEASE</version></dependency>
    <!-- mybatis依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency>
    <!-- mybatis-spring集成依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency>
    <!-- mysql驱动依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.9</version></dependency>
    <!-- druid连接池依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version></dependency>

2.5 在web.xml文件中。声明容器对象

<!-- 声明spring监听器 -->
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:/conf/applicationContext.xml</param-value>
</context-param>
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 声明springmvc的中央调度器 -->
<servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:/conf/dispatcherServlet.xml</param-value></init-param><load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>*.do</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><init-param><param-name>forceRequestEncoding</param-name><param-value>true</param-value></init-param><init-param><param-name>forceResponseEncoding</param-name><param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

2.6 创建项目中特定的包(entity、dao、service、controller

2.7 编写mybatis、spring、springmvc的配置文件

2.7.1 mybatis

jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=utf-8
jdbc.username=root
jdbc.password=12345678
<?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><!-- 设置日志 --><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><mappers><!-- 加载dao包下的所有mapper文件 --><package name="com.songzihao.dao"/></mappers>
</configuration>

2.7.2 spring

<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!-- spring配置文件:声明service、dao、工具类、事务配置 --><!-- 加载外部属性配置文件 --><context:property-placeholder location="classpath:/conf/jdbc.properties" /><!-- 声明组件扫描器 --><context:component-scan base-package="com.songzihao.service" /><!-- 创建数据源 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><!-- 创建SqlSessionFactory对象 --><bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:/conf/mybatis.xml" /></bean><!-- 创建SqlSession对象,通过反射机制加载dao接口对应的mapper文件 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="factory" /><property name="basePackage" value="com.songzihao.dao" /></bean><!-- 事务配置 --></beans>

2.7.3 springmvc

<?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:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- springmvc配置文件:声明controller、视图解析器等web开发中的对象 --><!-- 声明组件扫描器 --><context:component-scan base-package="com.songzihao.controller" /><!-- 声明视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- 声明springmvc注解驱动 --><mvc:annotation-driven />
</beans>

2.8 编写Java代码(实体类、dao接口和对应的mapper文件、service类、controller类

2.8.1 创建一个实体类

package com.songzihao.entity;/****/
public class Student {private Integer id;private String name;private Integer age;//getter and setter//toString
}

2.8.2 创建实体类对应的dao接口和接口对应的mapper文件

package com.songzihao.dao;import com.songzihao.entity.Student;import java.util.List;/****/
public interface StudentDao {int insertStudent(Student student);List<Student> selectStudent();
}
<?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.songzihao.dao.StudentDao"><!-- 使用insert、update、delete、select标签编写sql语句 --><insert id="insertStudent">insert into student2(name,age) values (#{name},#{age})</insert><select id="selectStudent" resultType="com.songzihao.entity.Student">select id,name,age from student2 order by id asc</select>
</mapper>

2.8.3 创建dao接口对应的service接口和实现类

package com.songzihao.service;import com.songzihao.entity.Student;import java.util.List;/****/
public interface StudentService {int addStudent(Student student);List<Student> queryStudent();
}
package com.songzihao.service.impl;import com.songzihao.dao.StudentDao;
import com.songzihao.entity.Student;
import com.songzihao.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/****/
@Service
public class StudentServiceImpl implements StudentService {/*** studentDao是引用类型,其对象是在spring配置文件中创建* 引用类型自动注入,这里使用注解 @Autowired 或者 @Resource*/@Autowiredprivate StudentDao studentDao;@Overridepublic int addStudent(Student student) {int rows=studentDao.insertStudent(student);return rows;}@Overridepublic List<Student> queryStudent() {List<Student> list=studentDao.selectStudent();return list;}
}

2.8.4 创建一个控制器类(接收并处理请求)

package com.songzihao.controller;import com.songzihao.entity.Student;
import com.songzihao.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;import java.util.List;/****/
@Controller
@RequestMapping(value = "/student")
public class StudentController {/***  声明service对象,调用其中的方法*  引用类型自动注入,这里使用注解 @Autowired 或者 @Resource*/@Autowiredprivate StudentService studentService;//添加学生@RequestMapping(value = "/addStudent.do")public ModelAndView addStudent(Student student) {ModelAndView mv=new ModelAndView();//调用service,处理业务逻辑方法,把处理结果返回给用户int rows=studentService.addStudent(student);String msg="";if (rows>0) {msg="注册成功!!!";mv.addObject("msg",student.getName() + "," + student.getAge());mv.setViewName("success");}else {msg="注册失败!!!";mv.addObject("msg",msg);mv.setViewName("fail");}return mv;}//查询学生@RequestMapping(value = "/queryStudent.do")@ResponseBodypublic List<Student> queryStudent() {List<Student> list=studentService.queryStudent();return list;}
}

2.9 创建视图文件(jsp)

2.9.1 首页(index.jsp)

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<%String basePath=request.getScheme() + "://" + request.getServerName()+ ":" + request.getServerPort() + request.getContextPath() + "/";
%>
<html>
<head><base href="<%=basePath%>"><title>SSM</title>
</head>
<body><div align="center"><p>SSM整合开发的例子</p><table><tr><td><a href="addStudent.jsp">注册学生</a></td><td><br/></td><td><a href="queryStudent.jsp">查询学生</a></td></tr></table></div>
</body>
</html>

2.9.2 注册学生页面(addStudent.jsp)

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head><title>添加学生</title>
</head>
<body><div align="center"><p>注册学生</p><form action="student/addStudent.do" method="post"><table><tr><td>姓名:</td><td><input type="text" name="name"></td></tr><tr><td>年龄:</td><td><input type="text" name="age"></td></tr><tr><td>提交:</td><td><input type="submit" value="注册"></td></tr></table></form></div>
</body>
</html>

2.9.3 注册成功和失败的页面(success.jsp、fail.jsp)

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head><title>$</title>
</head>
<body><h3>结果:${msg}</h3>
</body>
</html>
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head><title>$</title>
</head>
<body><h3>结果:${msg}</h3>
</body>
</html>

2.9.4 查询学生页面(queryStudent.jsp)

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<%String basePath=request.getScheme() + "://" + request.getServerName()+ ":" + request.getServerPort() + request.getContextPath() + "/";
%>
<html>
<head><base href="<%=basePath%>"><title>查询学生</title><script type="text/javascript" src="js/jquery-3.6.0.js"></script><script type="text/javascript">$(function () {$("#myBtn").on("click",function () {$.ajax({url: "student/queryStudent.do",dataType: "json",success: function (resp) {$("#stuinfo").empty();$.each(resp,function (i,n) {$("#stuinfo").append("<tr><td>" + n.id + "</td>" +"<td>" + n.name + "</td>" +"<td>" + n.age + "</td></tr>");})}})})})</script>
</head>
<body><div align="center"><p>查询学生 <button id="myBtn">获取学生信息</button></p><table><thead><tr><td>id</td><td>姓名</td><td>年龄</td></tr></thead><tbody id="stuinfo"></tbody></table></div>
</body>
</html>

2.10 为项目配置tomcat,启动测试!!!

2.10.1 注册学生的测试结果

2.10.2 查询学生的测试结果


3.写在结尾!!!

以上就是整个SSM整合开发的详细步骤,在这当中,只是简单的实现了注册学生、查询学生的功能,还有很多的漏洞、功能不足的地方。。。

毕竟我也是初学者,还希望大佬们勿喷!!!(

SSM整合——简单的小项目实战相关推荐

  1. SSM整合 登录注册小项目

    整合SSM制作登录注册功能 首先 引入pom.xml 配置  对应版本确定无冲突  注意反射插件的引入路径 <?xml version="1.0" encoding=&quo ...

  2. android简单app实例_Android安卓小项目实战视频教程集锦

    Android安卓小项目实战视频教程,点击进入视频教程: 一.安卓项目视频教程: 1蓝牙聊天APP介绍-分步骤介绍一个简单安卓蓝牙APP的开发过程 - 西瓜视频 2蓝牙聊天开发流程-分步骤介绍一个简单 ...

  3. SSM整合--简单的增删改查--修改用户信息

    SSM整合--简单的增删改查 修改用户信息 修改用户信息 ## 根据id查找用户信息,显示在employ_update页面 ## 进行修改信息后,提交表单,保存数据### 1.根据id查询用户信息 h ...

  4. SSM整合简单登录案例

    [1] 在数据库中创建用户信息表 [2] 搭建SSM开发环境 使用idea创建登录功能的web项目 在web-inf目录下创建lib文件夹,并导入SSM的jar包. 在src下创建MVC的包结构 在s ...

  5. c语言程序 实现简单计算器功能,C语言实现简单计算器小项目

    昨天刚安装上devc++,半夜想着练练C语言吧 于是就看到实验楼有一个计算器的项目 之前做过一次,这次写的主要是思路 首先我们先从原理思考jia,实现简单的计算器就要具备加减乘除这些,看普通的计算器也 ...

  6. CSS样式小项目实战 - 网页变色小按钮

    小项目练手实战 - 变色小按钮 [背景分析] 为了满足用户体验,提高项目网页的视觉冲击力,各大网站上都有一些有颜色的按钮,当鼠标划上去的时候会变色,让用户的体验非常好.为了满足用户需求,同时让代码效率 ...

  7. c语言实用计算器项目,C语言实现简单计算器小项目

    昨天刚安装上devc++,半夜想着练练C语言吧 于是就看到实验楼有一个计算器的项目 之前做过一次,这次写的主要是思路 首先我们先从原理思考jia,实现简单的计算器就要具备加减乘除这些,看普通的计算器也 ...

  8. 如何利用spring框架来开发一个简单的小项目——书店项目

    这里我将用spring来开发一个简单的书店项目 Step1:所用到的开发软件为 idea , 所用到的jar包为 这些jar的下载可在 官网 下载,选择5.2.6版本下载,不会的在下面评论私信 Ste ...

  9. oracle 小项目实战总结

    说明:钓鱼君昨天在网上找到一份oracle项目实战的文档,粗略看了一下大致内容,感觉自己很多知识不够扎实,便跟着文档敲了一遍,目前除了机械性代码没有实现外,主要涉及知识:创建表空间.创建用户.给用户赋 ...

  10. SSM+bootstrap4+mysql+redis原创项目实战:搭建校园二手交易网

    项目已部署到阿里云:hbxytrade.top 本文更新时间:2020/3/7,更新内容:redis缓存中间件(涉及多条件查询).物品管理界面(更新.上架.下架等操作).阿里云部署项目 代码地址: h ...

最新文章

  1. gstreamer 获取帧数据_Android App卡顿率(顺滑度、顺滑度)并整理数据
  2. python为什么找不到csv文件_python读写csv文件的方法(还没试,先记录一下)
  3. 操作系统第四章-文件管理
  4. SpringMVC工作原理之一:DispatcherServlet
  5. 【语言处理与Python】4.7算法设计
  6. Docker容器实现原理及容器隔离性踩坑介绍
  7. C语言基础入门实例汇总(共65个案例)
  8. 给Java程序猿们推荐一些值得一看的好书
  9. SPSS配对样本t检验
  10. php实现给pdf加水印,pdf文件如何加水印 怎样给pdf文件加水印|帮你轻松实现给pdf加水印...
  11. 红帽6.2 DOS无盘 NetWare 制作
  12. 如何为BLE 设备添加OTA DFU 空中升级服务(下)?
  13. 基努·里维斯继续出演《黑客帝国4》|| 程序员吐槽大会精选片段
  14. python爬虫学习
  15. Science重磅:颠覆教科书!科学家找到癌症发生源头,治愈肿瘤有了新思路
  16. 汉语拼音的模糊音扩展(用于搜索纠错)
  17. 九寨沟7.0级大地震,希望大家都能够平安
  18. VBA中的10种循环语句
  19. 第一章SayHello程序
  20. ICLR 2023论文接收列表公布,top5%都涉及ICL、扩散模型等方向,引热议

热门文章

  1. pwn题shellcode收集
  2. 手把手教你绘制最基础的列线图
  3. 微生物生态排序分析——CCA分析
  4. 读书笔记 - 多Agent强化学习下的自适应交通信号控制研究综述2017
  5. CAD输出图至Word
  6. 51,AVR,PIC,MSP430,STM32单片机比较
  7. matlab opnet,OPNET中设计网络 MATLAB
  8. 实验七-卷积编码的MATLAB实现
  9. 高中计算机技术基础教学ppt,高中信息技术教学课件
  10. java中使用activiti(工作流)