|
Spring Boot是一个非常流行的Java Web框架,可以快速地搭建Web应用程序。Mybatis-Plus是一个基于Mybatis的增强工具,可以简化Mybatis的开发流程,提高开发效率。本文将介绍如何在Spring Boot中集成Mybatis-Plus,并对其中的关键步骤进行详细讲解。
一、创建父项目并导入相关依赖
1.创建一个Maven项目,作为父项目,用于管理子模块。
2.在父项目的pom.xml文件中,添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
这些依赖包括了Spring Boot的父依赖、Web依赖、Mybatis-Plus依赖以及MySQL数据库驱动依赖。
在父项目的pom.xml文件中,添加子模块:
<modules>
<module>mybatis-plus-demo</module>
</modules>
这里创建了一个名为mybatis-plus-demo的子模块,用于实现Mybatis-Plus的示例功能。
在父项目的pom.xml文件中,添加以下插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这个插件可以将子模块打包成可执行的JAR或WAR文件。
在父项目的pom.xml文件中,添加以下配置:
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
这个配置指定了Java版本和编码格式。
至此,父项目的配置已经完成。
二、创建子模块
1.在父项目下创建一个名为mybatis-plus-demo的子模块。
2.在子模块的pom.xml文件中,添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
这个依赖是用于测试的。
在子模块的src/main/java目录下,创建一个包名为com.example.mybatisplusdemo的Java包。
在该包下创建一个名为MybatisPlusDemoApplication的Java类,作为程序的入口。
@SpringBootApplication
public class MybatisPlusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusDemoApplication.class, args);
}
}
这个类使用了Spring Boot的注解@SpringBootApplication,表示这是一个Spring Boot应用程序的入口。
在该包下创建一个名为User的Java类,作为实体类:
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
这个类使用了Lombok注解@Data,可以自动生成getter、setter、equals、hashCode等方法。
在该包下创建一个名为UserMapper的Java接口,继承Mybatis-Plus的BaseMapper接口,用于操作User实体类:
public interface UserMapper extends BaseMapper<User>
{
}
这个接口继承了Mybatis-Plus的BaseMapper接口,并指定了泛型类型为User,这样就可以使用Mybatis-Plus提供的CRUD方法来操作User表。
在该包下创建一个名为UserMapperTest的Java类,用于测试UserMapper接口:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Test
public void testSelect() {
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
}
这个类使用了Spring Boot的注解@SpringBootTest和JUnit的注解@RunWith和@Test,用于测试UserMapper接口的selectList方法,并断言结果的大小为5。
至此,子模块的配置已经完成。
三、配置数据源和Mybatis-Plus
在子模块的src/main/resources目录下,创建一个名为application.yml的文件,用于配置数据源和Mybatis-Plus:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
mybatis-plus:
mapper-locations: classpath*:/mapper/**Mapper.xml
global-config:
db-config:
id-type: auto
field-strategy: not_empty
这个配置文件指定了数据库的连接信息和Mybatis-Plus的配置,包括Mapper文件的位置、主键生成策略和字段策略等。
在子模块的src/main/resources目录下,创建一个名为mapper的目录,用于存放Mapper文件。
在mapper目录下,创建一个名为UserMapper.xml的Mapper文件,用于映射User实体类和数据库表:
<?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?>
<!DOCTYPE mapper PUBLIC &#34;-//mybatis.org//DTD Mapper 3.0//EN&#34;
&#34;http://mybatis.org/dtd/mybatis-3-mapper.dtd&#34;>
<mapper namespace=&#34;com.example.mybatisplusdemo.mapper.UserMapper&#34;>
<resultMap id=&#34;BaseResultMap&#34; type=&#34;com.example.mybatisplusdemo.entity.User&#34;>
<id column=&#34;id&#34; property=&#34;id&#34;/>
<result column=&#34;name&#34; property=&#34;name&#34;/>
<result column=&#34;age&#34; property=&#34;age&#34;/>
<result column=&#34;email&#34; property=&#34;email&#34;/>
</resultMap>
<sql id=&#34;Base_Column_List&#34;>
id, name, age, email
</sql>
<select id=&#34;selectList&#34; resultMap=&#34;BaseResultMap&#34;>
select
<include refid=&#34;Base_Column_List&#34;/>
from user
</select>
</mapper>
这个文件使用了Mybatis的XML配置,包括了结果映射、字段列表和查询语句。
至此,配置数据源和Mybatis-Plus的步骤已经完成。
四、运行程序并测试
在子模块的src/test/java目录下,创建一个名为MybatisPlusDemoApplicationTests的Java类,用于测试程序的启动和运行:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisPlusDemoApplicationTests {
@Test
public void contextLoads() {
}
}
这个类使用了Spring Boot的注解@SpringBootTest和JUnit的注解@RunWith和@Test,用于测试程序的启动和运行。
IDEA中运行程序:
打开浏览器,访问http://localhost:8080/user/selectList,可以看到查询结果为:
[
{
&#34;id&#34;: 1,
&#34;name&#34;: &#34;Jone&#34;,
&#34;age&#34;: 18,
&#34;email&#34;: &#34;test1@baomidou.com&#34;
},
{
&#34;id&#34;: 2,
&#34;name&#34;: &#34;Jack&#34;,
&#34;age&#34;: 20,
&#34;email&#34;: &#34;test2@baomidou.com&#34;
},
{
&#34;id&#34;: 3,
&#34;name&#34;: &#34;Tom&#34;,
&#34;age&#34;: 28,
&#34;email&#34;: &#34;test3@baomidou.com&#34;
},
{
&#34;id&#34;: 4,
&#34;name&#34;: &#34;Sandy&#34;,
&#34;age&#34;: 21,
&#34;email&#34;: &#34;test4@baomidou.com&#34;
},
{
&#34;id&#34;: 5,
&#34;name&#34;: &#34;Billie&#34;,
&#34;age&#34;: 24,
&#34;email&#34;: &#34;test5@baomidou.com&#34;
}
]
至此,Spring Boot集成Mybatis-Plus的示例程序已经完成。通过这个示例,可以了解如何在Spring Boot中集成Mybatis-Plus,并使用Mybatis-Plus提供的CRUD方法来操作数据库。
五、常见问题解决
在集成过程中,可能会遇到以下问题:
1.Mybatis-Plus的依赖无法下载
这可能是因为Maven仓库中没有该依赖或者网络连接问题导致的。可以尝试更换Maven仓库或者检查网络连接是否正常。
2.在运行程序时出现数据库连接异常
这可能是因为数据库连接信息配置错误或者数据库服务未启动导致的。可以检查数据库连接信息是否正确,或者检查数据库服务是否已经启动。
3.在运行程序时出现Mapper文件加载异常
这可能是因为Mapper文件路径配置错误导致的。可以检查Mapper文件所在的路径是否正确,或者检查Mapper文件是否正确命名。
4.在运行程序时出现Mybatis-Plus配置异常
这可能是因为Mybatis-Plus配置错误导致的。可以检查Mybatis-Plus的配置是否正确,比如主键生成策略、字段策略等是否符合实际需求。
5.在运行程序时出现其他异常
这可能是因为代码编写错误或者环境配置问题导致的。可以检查代码是否正确,或者检查环境配置是否正确。
六、总结
本文介绍了在Spring Boot中集成Mybatis-Plus的步骤,包括创建父项目、创建子模块、配置数据源和Mybatis-Plus、运行程序并测试以及常见问题解决。通过这个示例,可以了解如何在Spring Boot中使用Mybatis-Plus来简化Mybatis的开发流程,提高开发效率。同时,也需要注意在实际开发中,根据实际需求进行配置和优化,以达到更好的效果。
最后,建议大家在学习和使用Mybatis-Plus时,多参考官方文档和社区资料,并不断尝试和实践,才能更好地掌握这个工具的使用。同时,也需要注意防止因为使用Mybatis-Plus而导致对Mybatis的理解不够深入,要时刻保持对底层原理的关注和探究。 |
|