开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第 1 天,点击查看活动详情
前言:最近学习了SpringBoot和mybatis-plus,但是对SpringBoot整合Mybatis-plus的一整个流程还是较为模糊的,因此写该文记录一下相应的流程以及中间遇到的问题。
准备阶段
1.1 环境
SpringBoot:2.7.4
Maven:apache maven 3.8.1
mysql:5.7
mybatis-plus:3.3
1.2 项目结构
1.3 配置文件
1.3.1 pom.xml(下面代码只放了需要的导入的依赖)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--简化实体类-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- mybatis-plus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<!-- mysql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
1.3.2 application.properties
server.port=xxx
spring.datasource.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.show-sql=true
mybatis-plus.type-aliases-package=com.example.*.entity # 对应实体类所在的路径
mybatis-plus.mapper-locations=classpath*:com/example/**/mapper/xml/*.xml # 对应Mapper.xml所在的路径
编写阶段
2.1 实体类
Mybatis-plus中提供了@TableName
注解,该注解可以将指定的数据库与JavaBean进行映射,提高开发效率.有效的使用注解可以大大的加快我们的开发效率.
@TableName
注解常用的属性有value
与schema
,value
的值用于与数据库表名对应,而schema
则是用于指定模式名称,在mysql中为数据库名称,而在oracle和db2中则是schema
。
2.2 Mapper
Mybatis-plus已经为我们实现了BaseMapper
接口类,该接口类封装了许多与数据库增删改查有关的接口,我们的实体类接口只需继承该接口类即可。
2.3 Service and ServiceImpl
Mabatis-plus将一些通用Service接口提取到了IService类中,减少重复的代码工作。IService的使用需要另外两个接口的配合:baseMapper
和ServiceImpl
。ServiceImpl是Service的实现类,对应的业务逻辑在ServiceImpl类中进行处理。
UserServivce类
UserServiceImpl类
2.4 Controller 与启动类
Controller层主要是处理外部请求,调用service层,将service层的结果封装成统一对象进行返回。
启动类:
执行出错
3.1 Automatic assembly is not possible. A bean of type 'UserMapper' could not be found. ...... Error creating bean with name ‘sqlSessionFactory‘ defined in class path ......
查看信息可知是启动时sqlSessionFactory创建出现了问题以及UserMapper没有正确装配,于是查看对应的配置文件,发现application.properties中 如下两字段填写错误,于是进行修改。
mybatis-plus.type-aliases-package=com.example.*.entity
mybatis-plus.mapper-locations=classpath*:com/example/**/mapper/xml/*.xml
修改后发现还是报错Error creating bean with name ‘sqlSessionFactory‘ defined in class path ......
,于是查看pom.xml文件发现多加了一个包,删除后成功运行.