SpringBoot3-集成MybatisPlus

发布于:2025-07-10 ⋅ 阅读:(21) ⋅ 点赞:(0)

此次操作是在多模块下进行的,SpringBoot3-规划多模块目录

添加管理依赖

根模块 zibocoder-parentpom.xml 中添加 MybatisPlus bom 管理依赖

<properties>
    ...
    <mybatis-plus.version>3.5.12</mybatis-plus.version>
    ...
</properties>
<dependencyManagement>
	<dependencies>	
		...
		<dependency>
		   <groupId>com.baomidou</groupId>
		    <artifactId>mybatis-plus-bom</artifactId>
		    <version>${mybatis-plus.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
    </dependencies>
    ...
</dependencyManagement>

创建模块引入依赖

在插件管理模块 zibocoder-plugins 下创建MybatisPlus模块 zibocoder-plugins-mybatisplus
zibocoder-plugins-mybatispluspom.xml 下引入依赖

...
<dependencies>
    	<!-- 与springboot3集成的依赖包 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
        </dependency>
        <!-- 分页插件 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-jsqlparser</artifactId>
        </dependency>
        <!-- 测试依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

添加配置文件

src/main/java 下创建配置类 com/zibocoder/plugins/mybatisplus/MybatisPlusConfig.java
src/resource 下创建 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件

MybatisPlusConfig .java

@MapperScan("${mybatis-plus.mapperPackage}") //读取yaml中自定义配置,可以省略每个xxxMapper接口类上面的注解@Mapper
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 分页插件
        interceptor.addInnerInterceptor(paginationInnerInterceptor());
        return interceptor;
    }

    /**
     * 分页插件,自动识别数据库类型
     * 如果配置多个插件, 切记分页最后添加
     * 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
     */
    private PaginationInnerInterceptor paginationInnerInterceptor() {
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        // 分页合理化 若无下一页 则点击下一页返回第一页
        paginationInnerInterceptor.setOverflow(true);
        return paginationInnerInterceptor;
    }
}

org.springframework.boot.autoconfigure.AutoConfiguration.imports

Spring Boot 3.x 中用于自动配置的一种机制,其作用是定义一组自动导入的配置类
Spring Boot 启动时会读取该文件中列出的类,并将它们注册为 Spring 应用上下文中的 Bean
特别适用于多模块项目或插件系统,可以按需加载特定模块的自动配置类

com.zibocoder.plugins.mybatisplus.config.MybatisPlusConfig

创建测试类进行测试

  • 在一个业务模块,如:zibocoder-modules/zibocoder-system,创建实体类 src/main/java/com/zibocoder/system/domain/entity/SysUser.java
    SysUser.java
/**
 * @Description 系统用户实体类
 * @Author zibocoder
 * @Date 2025/6/29 13:30:47
 */
@Builder
@Data
@TableName(value = "sys_user")
public class SysUser {
    /**
     * 用户id 主键 数据库自增
     */
    @TableId(type = IdType.AUTO)
    private Long userId;
    /**
     * 登录账号
     */
    private String loginName;
    /**
     * 登录密码
     */
    private String loginPwd;
    /**
     * 随机盐
     */
    private String salt;

    /**
     * 姓名
     */
    private String realName;

    /**
     * 性别:0未知,1男,2女
     */
    private Integer gender;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 手机号码
     */
    private String phone;
    /**
     * 头像地址
     */
    private String avatar;

    /**
     * 部门id
     */
    private Long deptId;
    /**
     * 是否被禁用(0是,1否)
     */
    private Boolean disabledFlag;

    /**
     * 是否为超级管理员(0是,1否)
     */
    private Boolean adminFlag;

    /**
     * 是否删除(0是,1否)
     */
    private Boolean deletedFlag;

    /**
     * 最后登录IP
     */
    private String loginIp;

    /**
     * 最后登录时间
     */
    private LocalDateTime loginTime;
}
  • src/main/java 创建接口 com/zibocoder/system/mapper/SysUserMapper.java 继承 BaseMapper<SysUser>
/**
 * @Description
 * @Author zibocoder
 * @Date 2025/6/29 13:29
 */
// @Mapper 如果配置文件中没有配置 @MapperScan需要添加@Mapper注解,否则不加
public interface SysUserMapper extends BaseMapper<SysUser> {
    
}
  • zibocoder-modules/zibocoder-system/pom.xml 添加依赖包
<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.zibocoder</groupId>
        <artifactId>zibocoder-plugins-mybatisplus</artifactId>
    </dependency>
    <dependency>
        <groupId>com.zibocoder</groupId>
        <artifactId>zibocoder-starter</artifactId>
        <version>1.0.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>
  • src/test/java 创建测试类 com/zibocoder/system/SysUserTest.java
@SpringBootTest(classes = MainApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE)
public class SysUserTest {
    @Resource
    private SysUserMapper userMapper;

    @Test
    public void testAdd() {
        for (int i = 0; i < 10; i++) {
            SysUser sysUser = SysUser.builder()
                    .email("zibocoder" + i + "@163.com")
                    .deptId(1L)
                    .phone("12345678" + i)
                    .realName("张三" + i)
                    .loginName("zibocoder" + i)
                    .loginPwd(SaSecureUtil.sha256("123456"))
                    .build();
            userMapper.insert(sysUser);
        }
    }
}

如有帮到你可以点赞,收藏或鼓励一下(^_^),有什么疑问可以评论交流互相学习

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到