返回
MyBatis-Plus保姆级快速上手教程
后端
2024-02-16 03:24:56
MyBatis-Plus 简介
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis-Plus 特性
- 无侵入:只增强不做改变,100% 兼容 MyBatis
- 强大:支持各种数据库,如 MySQL、Oracle、PostgreSQL 等
- 方便:使用简单,开箱即用,无需额外配置
- 高效:提供各种优化手段,提升开发效率
- 安全:防止 SQL 注入,保护数据安全
- 扩展性强:支持各种插件,可轻松扩展功能
MyBatis-Plus 快速上手
1. 依赖引入
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
2. 配置数据源
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
3. 实体类定义
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("t_user")
public class User {
@TableId
private Long id;
private String name;
private Integer age;
private String email;
}
4. Mapper 接口定义
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mybatisplusdemo.entity.User;
public interface UserMapper extends BaseMapper<User> {
}
5. 使用 MyBatis-Plus
5.1 插入数据
User user = new User();
user.setName("张三");
user.setAge(20);
user.setEmail("zhangsan@qq.com");
userMapper.insert(user);
5.2 查询数据
List<User> users = userMapper.selectList(null);
for (User user : users) {
System.out.println(user);
}
5.3 修改数据
User user = userMapper.selectById(1L);
user.setName("李四");
userMapper.updateById(user);
5.4 删除数据
userMapper.deleteById(1L);
MyBatis-Plus 进阶
1. 分页查询
Page<User> page = new Page<>(1, 10);
userMapper.selectPage(page, null);
List<User> users = page.getRecords();
long total = page.getTotal();
2. 条件查询
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "张三");
List<User> users = userMapper.selectList(queryWrapper);
3. 事务管理
try {
userMapper.insert(user1);
userMapper.insert(user2);
} catch (Exception e) {
e.printStackTrace();
// 回滚事务
throw new RuntimeException();
}
4. 性能优化
MyBatis-Plus 提供了多种性能优化手段,如:
- 缓存:MyBatis-Plus 内置缓存,可有效减少数据库查询次数
- 索引:MyBatis-Plus 会自动生成索引,提高查询速度
- 分库分表:MyBatis-Plus 支持分库分表,提高数据库并发能力
MyBatis-Plus 代码生成
MyBatis-Plus 提供了代码生成器,可以根据数据库表自动生成实体类、Mapper 接口和 Service 类,大大提高开发效率。
结语
MyBatis-Plus 是一个非常优秀的持久层框架,它不仅简单易用,而且功能强大。如果你正在开发 Java 项目,强烈推荐你使用 MyBatis-Plus。