整合
1. 项目步骤
1.1 创建maven项目
spring章节笔记中有截图
1.2 pom.xml引入jar依赖
1 | <properties> |
1.3 编写Mybatis的配置文件
Mybatis的配置文件mybatis.xml
仅负责日志部分
1 |
|
日志配置文件文件log4j.properties:
1 | # Global logging configuration info warning error |
剩余部分的功能都交给spring配置文件进行接管
1.4 编写Spring的配置文件spring.xml
连接数据库的参数配置文件jdbc.properties
注意案例中使用的数据库版本是MySQL8
jdbc.properties:
1 | jdbc.driver=com.mysql.cj.jdbc.Driver |
spring.xml功能:
- 原有的创建对象的功能
spring接管mybatis的功能:
- 配置数据源jdbc的信息,又mybatis文件也要导入
- 配置别名
- 扫描映射文件
- 添加插件
- 接口的动态映射
1 |
|
1.5 编写SpringMVC的配置文件springmvc.xml
- springMVC负责逻辑业务层,controller的创建交由springmvc来完成
- 视图解析器
- 静态资源映射
- 文件上传
- 导入静态前端资源
1 |
|
1.6 编写web.xml配置文件
- 配置spring.xml和springmvc.xml
- 配置拦截路径url,所有请求都会被前端控制器拦截处理
- rest和防乱码的过滤器
1 |
|
1.7 测试
启动项目,浏览器访问http://localhost:8088/。看到如图所示页面表示项目整合成功。
1.8 No mappering for GET
在实际运行时网页报404错误,过滤器打印信息:NO mappering for GET
说明静态页面资源的没有扫描到
解决方法:
target中都看不到静态页面,说明没有扫描到静态资源,在pom.xml的资源扫描插件中添加多resource包下的.html
资源的扫描
1 | <resources> |
2. 使用mybatis反向生成实体类、dao和映射文件
2.1 反向生成配置文件generatorConfig.xml
1 |
|
2.2 运行插件
注意只能运行一次,运行完毕显示BUILD SUCCESS即为成功。
2.3 反向生成文件的坑
2.3.1 多次生成
一旦双击执行generate两次,第二次生成并不是覆盖,而是在原文件后面继续添加
如何判断反向生成的文件有没有问题:
- 打开任一xml文件,如图所示,将文件内容折叠
折叠后的文件内容:
这里只有一个resultMap才是正确的,如果重复出现多个id=“BaseResultMap”的resultMap,就只能把文件删掉重新生成
2.3.2 数据库重复命名
一旦其他数据库的别的库中也有相同命名的对象,如Team,Player等表,也会导致生成的xml文件中出现多个resultMap
如:mybatis库的文件中有了Team和player表,在ssm的反向生成文件时TeamMapper.xml和PlayerMapper.xml两个文件中都会反复生成,将mybatis这个库删除就OK了
3. 项目实例
3.1 实现分页查询
分页查询的实现逻辑:TeamExample实体类封装了查询方法,对应xml文件中的查询语句,直接调用就可以了
如下所示的:
- 业务层中的方法,只需要传入页数,每页显示数量和所有查询条件字段构建的实体类就行了
- 控制层中只需要调用上述方法就行了
3.1.1 逻辑业务层TeamService
1 |
|
3.1.2 控制层TeamController
1 |
|
3.1.3 返回结果封装类
1 | //返回结果的统一封装类 |