MyBatis-Plus实战:Spring Boot数据库操作效率提升10倍

张开发
2026/4/18 23:58:42 15 分钟阅读

分享文章

MyBatis-Plus实战:Spring Boot数据库操作效率提升10倍
一、引入依赖!-- pom.xml -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.5/version /dependency dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId /dependency # application.yml spring: datasource: url: jdbc:mysql://localhost:3306/mydb?useUnicodetruecharacterEncodingutf8 username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0回到顶部二、实体类Data TableName(user) public class User { TableId(type IdType.AUTO) private Long id; TableField(username) private String username; private String email; private Integer age; TableLogic // 逻辑删除 private Integer deleted; TableField(fill FieldFill.INSERT) private LocalDateTime createTime; TableField(fill FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; }回到顶部三、Mapper 接口Mapper public interface UserMapper extends BaseMapperUser { // 继承 BaseMapper 后自动拥有以下方法 // - insert(entity) // - deleteById(id) // - updateById(entity) // - selectById(id) // - selectList(wrapper) // - selectPage(page, wrapper) // 无需编写 XML }回到顶部四、条件构造器// 查询年龄大于18且邮箱不为空的用户 ListUser users userMapper.selectList( new LambdaQueryWrapperUser() .gt(User::getAge, 18) .isNotNull(User::getEmail) .orderByDesc(User::getCreateTime) ); // 模糊查询 ListUser users userMapper.selectList( new LambdaQueryWrapperUser() .likeRight(User::getUsername, 张) .between(User::getAge, 20, 30) ); // 更新年龄大于30的用户状态改为1 userMapper.update(null, new LambdaUpdateWrapperUser() .set(User::getStatus, 1) .gt(User::getAge, 30) );回到顶部五、分页查询// 分页配置类 Configuration public class MyBatisPlusConfig { Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } } // 分页查询 PageUser page new Page(1, 10); // 第1页每页10条 userMapper.selectPage(page, new LambdaQueryWrapperUser() .gt(User::getAge, 18) ); ListUser records page.getRecords(); // 当前页数据 long total page.getTotal(); // 总记录数 long pages page.getPages(); // 总页数回到顶部六、代码生成器// AutoGenerator 一键生成 Entity、Mapper、Service、Controller AutoGenerator generator new AutoGenerator(); // 全局配置 GlobalConfig globalConfig new GlobalConfig(); globalConfig.setOutputDir(System.getProperty(user.dir) /src/main/java); globalConfig.setAuthor(myname); globalConfig.setOpen(false); generator.setGlobalConfig(globalConfig); // 数据源配置 DataSourceConfig dataSourceConfig new DataSourceConfig.Builder( jdbc:mysql://localhost:3306/mydb, root, 123456 ).build(); generator.setDataSource(dataSourceConfig); // 策略配置 StrategyConfig strategyConfig new StrategyConfig.Builder() .addInclude(user, order) // 表名 .entityBuilder().enableLombok() .controllerBuilder().enableRestStyle() .build(); generator.setStrategy(strategyConfig); generator.execute();

更多文章