MyBatisPlus 之CRUD详解

在控制台打印sql语句配置

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

插入一条数据

@Test
public void insertPlus() {
    User user = new User().setUserName("James").setAge(36).setUserEmail("qqq@sql.com");
    userMapper.insert(user);
    System.out.println(user);
}

控制台:
==>  Preparing: INSERT INTO tb_user ( userEmail, user_name, age ) VALUES ( ?, ?, ? ) 
==> Parameters: qqq@sql.com(String), James(String), 36(Integer)
<==    Updates: 1
User(id=15, userName=James, age=36, userEmail=qqq@sql.com)

通过id更新信息

@Test
public void updateByIdLoads() {
    User user = new User().setId(15L).setUserName("Kobe");

    Integer insert = userMapper.updateById(user);
    System.out.println("return insert value = " + insert);
}
控制台:
==>  Preparing: UPDATE tb_user SET user_name=? WHERE id=? 
==> Parameters: Kobe(String), 15(Long)
<==    Updates: 1
return insert value = 1

根据id批量删除

@Test
public void deleteLoads() {
    List<Long> list = new ArrayList<>();
    list.add(13L);
    list.add(14L);
    list.add(15L);

    Integer insert = userMapper.deleteBatchIds(list);
    System.out.println("return deleteBatchIds value = " + insert);
}
控制台:
==>  Preparing: DELETE FROM tb_user WHERE id IN ( ? , ? , ? ) 
==> Parameters: 13(Long), 14(Long), 15(Long)
<==    Updates: 3
return deleteBatchIds value = 3

根据id删除

@Test
public void deleteByIdLoads() {
    Integer deleteById = userMapper.deleteById(12L);
    System.out.println("return deleteById value = " + deleteById);
}
控制台:
==>  Preparing: DELETE FROM tb_user WHERE id=? 
==> Parameters: 12(Long)
<==    Updates: 1
return deleteById value = 1

通过多个条件进行实体list查询

@Test
public void selectByMap() {
    HashMap<String, Object> map = new HashMap<>(16);
    map.put("userEmail", "test1@baomidou.com");
    map.put("age", 18);
    List<User> list2 = userMapper.selectByMap(map);
    list2.forEach(System.out::println);

    System.out.println("---------------黄金分割线---------------");

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("age", 18).eq("user_name", "Tom");
    List<Map<String, Object>> list = userMapper.selectMaps(queryWrapper);

    list.forEach(System.out::println);
}
控制台:
==>  Preparing: SELECT id,userEmail,user_name,age FROM tb_user WHERE userEmail = ? AND age = ? 
==> Parameters: test1@baomidou.com(String), 18(Integer)
<==    Columns: id, userEmail, user_name, age
<==        Row: 1, test1@baomidou.com, Jone, 18
<==      Total: 1
User(id=1, userName=Jone, age=18, userEmail=test1@baomidou.com)
---------------黄金分割线---------------
==>  Preparing: SELECT id,userEmail,user_name,age FROM tb_user WHERE (age = ? AND user_name = ?) 
==> Parameters: 18(Integer), Tom(String)
<==    Columns: id, userEmail, user_name, age
<==        Row: 6, 123.qq.com, Tom, 18
<==      Total: 1
{user_name=Tom, userEmail=123.qq.com, id=6, age=18}

分页查询

@Test
public void selectPageLoads() {
    Page<User> page = new Page<>(2,3);
    IPage<User> pageResult = userMapper.selectPage(page, null);
    List<User> recordsAge = pageResult.getRecords();
    recordsAge.forEach(System.out::println);
}
控制台:
==>  Preparing: SELECT COUNT(1) FROM tb_user 
==> Parameters: 
<==    Columns: COUNT(1)
<==        Row: 6
==>  Preparing: SELECT id,userEmail,user_name,age FROM tb_user LIMIT ?,? 
==> Parameters: 3(Long), 3(Long)
<==    Columns: id, userEmail, user_name, age
<==        Row: 4, test4@baomidou.com, Sandy, 21
<==        Row: 5, test5@baomidou.com, Billie, 24
<==        Row: 6, 123.qq.com, Tom, 18
<==      Total: 3
User(id=4, userName=Sandy, age=21, userEmail=test4@baomidou.com)
User(id=5, userName=Billie, age=24, userEmail=test5@baomidou.com)
User(id=6, userName=Tom, age=18, userEmail=123.qq.com)

更多用法可以查看源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值