定义:SSM①框架集由②SpringMVC、③Spring、和④MyBatis开源框架整合而成。常作为数据源较简单的web项目的⑤三层框架。
①框架:软件开发中的一套解决方案,不同的框架解决不同的问题。框架封装了很多细节,使得开发者可以使用简单的方式实现功能,大大提高开发效率
②SpringMVC:
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
MVC即model view controller,模型视图控制
③Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new
一个对象,而是让Spring框架帮你来完成这一切。
④MyBatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。
⑤三层框架
表现层,展示数据,SpringMVC;业务层:处理业务需求,Spring;持久层:和数据库交互,Mybatis
关于持久层技术解决方案:
- JDBC:Connection,PreparedStatment,ResultSet
- Spring的JdbcTemplate:Spring对jdbc的简单封装
- Apache的BDUtil:对jdbc的简单封装
以上都不是框架,JDBC是规范,而其他两个是工具类(使用的封装),而不是一套完整的解决方案。
一般项目分为以下几层:
- Entity( pojo,bean,domain): 存放我们的实体类,与数据库中的属性值基本保持一致。
- Dao (mapper):用mybatis逆向工程生成,对数据库进行数据持久化操作,dao的方法语句是直接针对数据库操作的。
- Controller:控制器,导入service层,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。
- Service:存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入dao层,dao层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。而service层是针对我们controller,也就是针对我们使用者。service的impl是把mapper和service进行整合的文件。数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过mybatis插入到数据库中
- View: 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示
在具体的项目中,其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Entity层进行传递的。
Conroller层和Service层的区别:Controlle层负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计;
Dao层和Service层的区别:例如用户登录,Service会调用很多种Dao的接口,Service相当于打包了
分页
数据校验 jquery前端校验+jsr303后端校验
Ajax
rest风格的url,使用http协议请求方式的动词。来表示对资源的操作(get查询)post新增 put修改 delete删除
技术点:SSM
SpringMVC +Spring +MyBatis
数据库 Mysql
前端框架 bootstrap快速搭建简洁美观的界面
项目的依赖管理 maven
分页 插件 pagehelper
逆向工程 mybatis generator
因为是web工程,所以是war包
基础环境搭建
创建Maven工程
引入项目依赖的jar包 spring springmvc mybatis 数据库连接池,驱动包 其他(jstl、servlet-api、junit )
引入bootstrap前端框架
CRUD实战
环境要求
-
IDEA,MySQL 5.7.19,Tomcat 9,Maven 3.6
数据库环境
CREATE DATABASE `ssmbuild`;
USE `ssmbuild`;
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',
`bookName` VARCHAR(100) NOT NULL COMMENT '书名',
`bookCounts` INT(11) NOT NULL COMMENT '数量',
`detail` VARCHAR(200) NOT NULL COMMENT '描述',
KEY `bookID` (`bookID`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `books`(`bookID`,`bookName`,`bookCounts`,`detail`)VALUES
(1,'Java',1,'从入门到放弃'),
(2,'MySQL',10,'从删库到跑路'),
(3,'Linux',5,'从进门到进牢');
基本环境搭建
1、新建一Maven项目!ssmbuild , 添加web的支持
2、导入相关的pom依赖!
3、Maven资源过滤设置
4、建立基本结构和配置框架!
-
com.kuang.pojo
-
com.kuang.dao
-
com.kuang.service
-
com.kuang.controller
-
mybatis-config.xml
-
applicationContext.xml
Mybatis层编写
1、数据库配置文件 database.properties
2、IDEA关联数据库
3、编写MyBatis的核心配置文件
4、编写数据库对应的实体类 com.kuang.pojo.Books
5、编写Dao层的 Mapper接口!
6、编写接口对应的 Mapper.xml 文件。需要导入MyBatis的包;
7、编写Service层的接口和实现类
Spring层
1、配置Spring整合MyBatis,我们这里数据源使用c3p0连接池;
2、我们去编写Spring整合Mybatis的相关的配置文件;spring-dao.xml
3、Spring整合service层
SpringMVC层
1、web.xml
2、spring-mvc.xml
3、Spring配置整合文件,applicationContext.xml
Controller 和 视图层编写
1、BookController 类编写 , 方法一:查询全部书籍
2、编写首页 index.jsp
3、书籍列表页面 allbook.jsp
4、BookController 类编写 , 方法二:添加书籍
5、添加书籍页面:addBook.jsp
6、BookController 类编写 , 方法三:修改书籍
7、修改书籍页面 updateBook.jsp
8、BookController 类编写 , 方法四:删除书籍