SSM整合(超详细)
这是我参与11月更文挑战的第28天,活动详情查看:2021最后一次更文挑战
我们整合ssm,并实现一个查询数据库里的博客,并展示在页面上的功能。
一、工具
- idea
- MySQL 8.0.22
- Tomcat 9
项目结构:
二、数据库准备
- 创建一个存放博客的数据库表,并插入一些数据
1 | sql复制代码create table blog( |
三、基本环境搭建
1. 新建一个Maven项目,并添加web的支持
2. 在pom.xml导入我们需要用到的依赖
如果我们的MySQL版本高于8.0,就需要导入高于MySQL以上的版本,否则可能会报Connections could not be acquired from the underlying database!
1 | xml复制代码 <dependencies> |
3. 在pom.xml中添加Maven资源过滤,预防资源无法导出
1 | xml复制代码 <build> |
4. 建立基本结构和配置框架!
- com.mq.controller
- com.mq.dao
- com.mq.pojo
- com.mq.service
- mybatis-config.xml
1 | xml复制代码<?xml version="1.0" encoding="UTF-8" ?> |
- applicationContext.xml
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
四、MyBatis层编写
1. 数据库配置文件 database.properties
注意: 数据库连接可能会碰到:驱动问题、SSL安全访问的问题和时区问题。
MySQL 8.0以上的版本要配置时区,serverTimezone=GMT%2B8
高版本的驱动已经由:"com.mysql.jdbc.Driver"
变为:"com.mysql.cj.jdbc.Driver"
否则会报500错误:Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
1 | java复制代码jdbc.driver=com.mysql.cj.jdbc.Driver |
2. 使用idea连接数据库
如果连接失败检查是不是没有配置时区。
3. 编写实体类
在pojo包下创建Blog实体类,使用lombok插件要导入依赖。
1 | java复制代码package com.mq.pojo; |
4. 编写dao层接口和Mapper.xml
如果只是单纯整合,那么不用写接口,我这里为了测试。
- 在dao包下创建BlogMapper接口
1 | java复制代码package com.mq.dao; |
- 编写BlogMapper对应的mapper.xml文件
1 | xml复制代码<?xml version="1.0" encoding="UTF-8" ?> |
5. 编写MyBatis的核心配置文件
我们把配置数据源的步骤交给spring去做。
关于Mybatis的配置详情可以看MyBatis的配置详解
1 | xml复制代码<?xml version="1.0" encoding="UTF-8" ?> |
6. 编写Service层的接口和实现类
接口:
1 | java复制代码package com.mq.service; |
实现类:
1 | java复制代码package com.mq.service; |
五、Spring层编写
这里我们将spring编写拆成三个配置的编写,每一个相当于整合两种。方便理解。
1.spring-dao.xml
Spring整合Mybatis的相关的配置文件,主要就是我们以前在mybatis-config.xml需要配置数据源的工作,现在交给spring去做了,以及获取到SqlSessionFactory对象等全部由spring去做。代码有详细注释。
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
2. spring-service.xml
编写spring Ioc的依赖注入
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
六、SpringMVC层编写
1. spring-mvc.xml
主要编写注册视图解析器 :InternalResourceViewResolver
注解驱动。
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
2. 编写applicationContext.xml
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
3. web.xml
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
到这里我们的整合就已经结束了!
我们来测试一下
七、测试
1. 在controller新建BlogController类测试
1 | java复制代码package com.mq.controller; |
2. 编写视图层
index.jsp
1 | jsp复制代码<%-- |
allblog.jsp
1 | jsp复制代码<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
- 运行结果:
到这里我们的整合并且测试已经完成了!
完美收工!
写在最后
如果有误,欢迎大佬指出,不胜感激。
💌 低级的欲望通过放纵就可获得,高级的欲望通过困自律方可获得,顶级的欲望通过煎熬才可获得
一个心怀浪漫宇宙,也珍惜人间日常的码农
本文转载自: 掘金