MybatisPlus
引入依赖
首先,在项目中引入MyBatis-Plus的依赖:
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3</version>
</dependency>
定义一个实体类,例如User:
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
    // 省略getter和setter
}
继承BaseMapper接口:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}
条件构造器
MyBatis-Plus提供了QueryWrapper和LambdaQueryWrapper来构造查询条件。
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("age", 18).like("name", "张");
List<User> userList = userMapper.selectList(wrapper);
使用Lambda方式:
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getAge, 18).like(User::getName, "张");
List<User> userList = userMapper.selectList(wrapper);
通用CRUD
通过BaseMapper接口,可以实现基本的CRUD操作。
// 插入
User user = new User();
user.setName("张三");
user.setAge(18);
userMapper.insert(user);
// 更新
user.setName("李四");
userMapper.updateById(user);
// 删除
userMapper.deleteById(user.getId());
// 查询
User userById = userMapper.selectById(user.getId());
List<User> userList = userMapper.selectList(null);
在MyBatis配置中添加分页插件:
@Configuration
public class MyBatisConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}
使用分页:
Page<User> page = new Page<>(1, 10);
Page<User> userPage = userMapper.selectPage(page, null);
乐观锁插件
在实体类中添加@Version注解:
import com.baomidou.mybatisplus.annotations.Version;
public class User {
    @Version
    private Integer version;
    // ...
}
配置乐观锁插件:
@Configuration
public class MyBatisConfig {
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }
}
代码生成器
MyBatis-Plus提供了代码生成器,可以自动生成实体类、Mapper接口、Service接口和Controller。
示例代码:
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
public class CodeGenerator {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/mydb", "username", "password")
                .globalConfig(builder -> {
                    builder.author("yourName")
                            .outputDir(System.getProperty("user.dir") + "/src/main/java")
                            .fileOverride()
                            .disableOpenDir();
                })
                .packageConfig(builder -> {
                    builder.parent("com.example")
                            .entity("entity")
                            .mapper("mapper")
                            .service("service")
                            .controller("controller");
                })
                .strategyConfig(builder -> {
                    builder.addInclude("user")  // 表名
                            .entityBuilder()
                            .enableLombok()
                            .versionColumnName("version")
                            .logicDeleteColumnName("deleted");
                })
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号