Mybatis-plus实现CRUD


前言

使用 mybatis-plus 实现查询、插入、更新、删除

示例

准备

依赖

<dependency>
	<groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>

Mapper

@Mapper
public interface UserMapper extends BaseMapper<UserModel> {
}

1. 查询

@Service
public class UserService extends ServiceImpl<UserMapper, UserModel> {
    @Autowired
    private UserMapper userMapper;

	public void testSelect() {
        QueryWrapper<UserModel> queryWrapper = new QueryWrapper<>();

        queryWrapper.select("id", "name", "age"); // select id, name, age

        queryWrapper.isNull("name"); // name is null
        queryWrapper.isNotNull("name"); // name is not null

        queryWrapper.eq("id", 10); // id = 10
        queryWrapper.ne("id", 10); // id != 10
        queryWrapper.gt("id", 10); // id > 10
        queryWrapper.ge("id", 10); // id >= 10
        queryWrapper.lt("id", 10); // id < 10
        queryWrapper.le("id", 10); // id <= 10

        queryWrapper.in("id", Arrays.asList(1, 2, 3)); // id in (1,2,3)
        queryWrapper.notIn("id", Arrays.asList(1, 2, 3)); // id not in (1,2,3)
        queryWrapper.between("id", 7, 10); // id between 7 and 10 (id >= 7 && id <= 10)

        queryWrapper.like("name", "wei"); // name like '%wei%'
        queryWrapper.like(StringUtils.isNotBlank(model.getName()), "name", "wei"); // 满足条件再拼接sql: name like '%wei%'
        
        queryWrapper.likeLeft("name", "wei"); // name like '%wei'
        queryWrapper.likeRight("name", "zhao"); // name like 'zhao%'

        queryWrapper.orderByAsc("id"); // order by id
        queryWrapper.orderByDesc("id"); // order by id desc

        // 分页查询
        int pageNum = 1; // 当前页码
        int pageSize = 10; // 每页数量
        Page<UserModel> page = new Page<>();
        page.setCurrent(pageNum);
        page.setSize(pageSize);

        Page<UserModel> modelPage = userMapper.selectPage(page, queryWrapper);
        modelPage.getTotal(); // 总量
        modelPage.getCurrent(); // 当前页码
        modelPage.getSize(); // 每页数量

        // 子查询
        queryWrapper.inSql("id", "select id from user where id > 100"); // id 在子查询的范围内
    }
}

2. 插入

@Service
public class UserService extends ServiceImpl<UserMapper, UserModel> {
    @Autowired
    private UserMapper userMapper;

	@Override
    @Transactional(rollbackFor = {Exception.class})
    public boolean saveBatch(Collection<UserModel> entityList, int batchSize) {
        return super.saveBatch(entityList, batchSize);
    }

    public void testInsert() {
        // 单个插入
        UserModel model = new UserModel();
        userMapper.insert(model);

        // 批量插入, 每次插入200
        List<UserModel> models = new ArrayList<>();
        this.saveBatch(models, 200);
    }
}

3. 更新

@Service
public class UserService extends ServiceImpl<UserMapper, UserModel> {
    @Autowired
    private UserMapper userMapper;

	public void testUpdate() {
        UpdateWrapper<UserModel> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("name", "lisi");
        updateWrapper.set("age", 20);

        updateWrapper.eq("id", 10);

        userMapper.update(null, updateWrapper);
    }
}

4. 删除

@Service
public class UserService extends ServiceImpl<UserMapper, UserModel> {
    @Autowired
    private UserMapper userMapper;

	public void testDelete() {
        QueryWrapper<UserModel> queryWrapper = new QueryWrapper<>();

        queryWrapper.eq("id", 10);

        userMapper.delete(queryWrapper);
    }
}
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值