@TOC
一、SSM框架
(一)SSM为何物
-
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的Web项目的框架。
(二)Spring框架
-
Spring就像是整个项目中装配
Bean
的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC
(控制反转),即不再需要程序员去显式地new
一个对象,而是让Spring框架帮你来完成这一切。
(三)Spring MVC框架
-
Spring MVC
在项目中拦截用户请求,它的核心Servlet
即DispatcherServlet
承担中介或是前台这样的职责,将用户请求通过HandlerMapping
去匹配Controller
,Controller
就是具体对应请求所执行的操作。Spring MVC
相当于SSH
框架中Struts
。 -
M:模型层、V:视图层、C:控制层
-
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
-
模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
(四)MyBatis框架
-
MyBatis
是对JDBC (Java DataBase Connectivity)
的封装,它让数据库底层操作变得透明。MyBatis
的操作都是围绕一个sqlSessionFactory
实例展开的。MyBatis
通过配置文件关联到各实体类的Mapper
文件,Mapper
文件中配置了每个类对数据库所需进行的SQL语句映射
。在每次与数据库交互时,通过sqlSessionFactory
拿到一个sqlSession
,再执行SQL
命令。页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。
二、用户登录运行效果
-
客户端有非空校验
-
登录成功,跳转到主页面
-
登录失败,再次跳转到登录页面
三、利用SSM框架实现用户登录
(一)创建数据库与表
1.创建数据库
-
执行命令:
CREATE DATABASE ssmdb CHARSET='utf8mb4';
-
查看创建的数据库
2.创建用户表
-
执行SQL命令生成用户表
t_user
CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(20) DEFAULT NULL, `telephone` varchar(11) DEFAULT NULL, `register_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `popedom` int(11) DEFAULT NULL COMMENT '0:管理员;1:普通用户', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
3.用户表添加记录
-
执行SQL命令添加4条记录
INSERT INTO `t_user` VALUES ('1', 'admin', '12345', '15734345678', '2021-09-02 08:40:35', '0'); INSERT INTO `t_user` VALUES ('2', 'alice', '11111', '13956567889', '2021-10-20 09:51:43', '1'); INSERT INTO `t_user` VALUES ('3', 'brown', '22222', '13956678907', '2022-03-21 09:52:36', '1'); INSERT INTO `t_user` VALUES ('4', 'linda', '33333', '15890905678', '2022-05-25 09:52:56', '1');
(二)创建Maven项目
-
创建Maven项目 -
SSMLogin
-
设置项目命令、项目位置、组ID和项目ID
-
单击【Finish】按钮
(三)添加相关依赖
-
在
pom.xml
文件里添加相关依赖<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.qzj.ssm</groupId> <artifactId>SSMLogin</artifactId> <version>1.0-SNAPSHOT</version> <properties> <!-- spring.version --> <spring.version>5.3.20</spring.version> </properties> <dependencies> <!--Spring核心--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!--Spring Bean--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <!--Spring容器--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!--Spring测试--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!--Spring数据库支持--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!--数据库驱动工具包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency> <!--数据库连接池框架--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.10</version> </dependency> <!--持久层框架--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.10</version> </dependency> <!--提供MyBatis与Spring整合的支持--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.7</version> </dependency> <!--日志框架--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--单元测试--> <dependency>