1. SpringBoot中快速生成实体类和getter/setter的方式
1.1 逆向工程
需要使用mybatis.generator
插件:
<!--mybatis.generator插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!-- 下面是地址 -->
<configurationFile>GeneratorMapper.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
1.2 lombok依赖
(1)pom.xml
文件中引入lombok
依赖
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
(2)在实体类中添加注解
a. 首先需要在实体类中写好与数据库中各表属性相对应的变量名称;
b. 在类的上方添加@Data
注解,该注解可以根据类中各属性字段自动生成getter、setter、toString()等方法
c. 无参构造方法对应注解:@NoArgsConstructor
; 全参构造方法对应注解:@AllArgsConstructor
2. SpringBoot项目启动常见报错
2.1 找不到对应的数据源配置
2.1.1 报错信息:
Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
2.1.2 可能的报错原因及解决方法
1. pom.xml
文件中配置了多个数据源,造成了数据源冲突。
此时在可以xxxxApplication.java
(SpringBoot启动类)中类名上方的注解@SpringBootApplication
更改为排除自动配置的注解:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//排除自动配置
但这种做法不能确保运行成功,且后续可能引发其他问题,因此推荐把 pom.xml
文件中多余的配置包删掉。
最好的做法
先排查一下 pom.xml
中的依赖包是否有重复注入的现象,尤其是spring-boot-starter-web
等,如果项目中有多个依赖组,建议先将用不到的那些相关依赖注释掉(比如逆向工程时使用的),只保留唯一的spring-boot-starter-web
、mysql-connector-j
、mybatis-spring-boot-starter
、lombok
(如有用到)即可。
2. 数据库连接等参数配置错误。
检查一下resources
文件夹中的配置文件application.yml
或application.properties
,看看格式、配置选项的单词拼写是否有错误。
2.2 找不到mapper对应的Bean对象
2.2.1 报错信息:
Consider defining a bean of type ‘com.xxx.mapper.UserMapper in your configuration
或者出现如下报错信息:
2.2.2 可能的报错原因及解决方法
1. mapper
文件夹下的XxxxMapper
类没有配置@Mapper
注解
可以在XxxxMapper
类中类名上方加上@Mapper
注解;
或者在SpringBoot驱动类中添加@MapperScan
注解:
@MapperScan("com.xxx.xxx.mapper")
@MapperScan 是 MyBatis-Spring 项目中的一个注解,用于指示 Spring 扫描并注册 MyBatis 的
Mapper 接口,使得这些接口可以被自动实例化并注入到 Spring 容器中。
2. SpringBoot与MyBatis-Spring版本不兼容
假如pom.xml
文件中的mybatis-spring-boot版本过高,也会导致找不到对应的mapper
可供参考的对应匹配的版本号如下:
或者在网站“springboot与mybatis-spring-boot对应版本号”自行查找对应版本号
2.3 MyBatis/MyBatis-Plus相关配置问题
2.3.1 报错信息:
项目启动时启动时报错:Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required.
或者执行CRUD相关接口时抛出org.apache.ibatis.binding.BindingException
异常:
2.3.2 可能的报错原因及解决方法:
MyBatis/MyBatis-Plus没有配置好:
很可能是pom.xml
文件中注入了MyBatis/MyBatis-Plus相关依赖,但application.yml
没有配置好mapper-locations
路径,或者配置了无效的路径(路径写错了,或者路径指向的文件对应的相关Mapper无法读取)。也有可能是pom.xml
文件中没有引入MyBatis/MyBatis-Plus相关依赖,但配置文件application.yml
中定义了MyBatis/MyBatis-Plus相关的配置。
因此建议重点检查application.yml
,去掉冗余的配置。