引言
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它支持自定义 SQL、CRUD 操作、代码生成、分页插件等,特别适合于大型项目的开发。本文将详细介绍 MyBatis-Plus 的使用方法,帮助您安全高效地进行数据操作,告别 SQL 注入风险。
一、MyBatis-Plus 简介
1.1 MyBatis-Plus 的优势
- 简化开发:通过代码生成器自动生成 CRUD 代码,减少重复劳动。
- 安全高效:内置分页插件,防止 SQL 注入,提高查询效率。
- 自定义扩展:支持自定义 SQL、代码生成器、分页插件等。
1.2 环境搭建
- 添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
- 配置数据源
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
二、MyBatis-Plus 基本用法
2.1 CRUD 操作
- 定义实体类
public class User {
private Long id;
private String name;
private Integer age;
// getter 和 setter
}
- 创建 Mapper 接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
- 使用 Mapper 接口进行 CRUD 操作
@Autowired
private UserMapper userMapper;
// 添加用户
userMapper.insert(new User("张三", 20));
// 查询用户
User user = userMapper.selectById(1L);
// 更新用户
user.setName("李四");
userMapper.updateById(user);
// 删除用户
userMapper.deleteById(1L);
2.2 分页插件
- 配置分页插件
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
- 使用分页查询
Page<User> page = new Page<>(1, 10);
List<User> users = userMapper.selectPage(page, Wrappers.query().eq("name", "张三"));
三、MyBatis-Plus 高级用法
3.1 自定义 SQL
- 在 Mapper 接口中定义方法
@Select("SELECT * FROM user WHERE name = #{name}")
List<User> selectByName(@Param("name") String name);
- 使用自定义 SQL
List<User> users = userMapper.selectByName("张三");
3.2 代码生成器
- 添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>最新版本</version>
</dependency>
- 配置代码生成器
public class CodeGenerator {
public static void main(String[] args) {
AutoGenerator generator = new AutoGenerator();
// 全局配置
generator.globalConfig()
.outputDir("src/main/java")
.author("作者名")
.fileOverride()
.disableOpenDir();
// 数据源配置
generator.dataSource(new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=utf-8", "root", "123456").build());
// 包配置
generator.packageInfo()
.parent("com.example")
.entity("entity")
.mapper("mapper")
.service("service")
.serviceImpl("service.impl")
.controller("controller");
// 策略配置
generator.strategy()
.entityBuilder()
.enableLombok()
.enableCache()
.versionFieldName("version")
.naming(NamingStrategy.underline_to_camel)
.controllerBuilder()
.enableRestStyle();
// 模板配置
generator.templateEngine(new VelocityTemplateEngine());
// 执行生成
generator.execute();
}
}
通过以上步骤,您已经成功掌握了 MyBatis-Plus 的基本用法和高级用法。MyBatis-Plus 将大大提高您的开发效率,并确保数据操作的安全性。祝您在项目中使用 MyBatis-Plus 取得成功!
