2021-07-15

这篇博客详细介绍了MyBatisPlus的使用,包括配置日志打印、逻辑删除的实现、各种查询条件的构建,如等值、范围、模糊查询,以及排序、分页和自定义SQL操作。此外,还涵盖了增删改查的基本操作,展示了如何进行条件构造器删除和根据ID操作数据。
摘要由CSDN通过智能技术生成

MybatisPuls学习日志

控制台打印日志:

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

逻辑删除:

在entriy 添加字段deleted字段,在上面加上@TableLogic注解

在yml 配置文件中添加配置

global-config:
  db-config:
    logic-not-delete-value: 0 (没有删除)
    logic-delete-value: 1(删除)

逻辑删除后再查询不出逻辑删除的数据。

查询:

QueryWrapper wrapper = new QueryWrapper<>();
//eq等于 name="小孩"这个字段的所有的数据
wrapper.eq("name","小孩");
userMapper.selectList(wrapper);
Map<String, Object> map = new HashMap<>();
//放在一个map集合里面 既要满足name=小明也要age=13
map.put("name","小明");
map.put("age",13);
wrapper.allEq(map);
userMapper.selectList(wrapper);
//lt 小于
wrapper.lt("age",3);
//gt 大于
wrapper.gt("age",14);
//不等于
wrapper.ne("age",15);
//大于等于
wrapper.ge("age",56);
//小于等于
wrapper.le("age",63);
//模糊查询
wrapper.like("name","小");
//like '%小' 以小字结尾
wrapper.likeLeft("namr","小");
//以小开头的 like 小%
wrapper.likeRight("name","小");
//insql
wrapper.inSql("id","select id from user where id<10");
wrapper.inSql("age","select * from user where age>3");
userMapper.selectList(wrapper);
//升序
wrapper.orderByAsc("age");
//降序
wrapper.orderByDesc("age");
//追加
wrapper.having("id >8");
//通过主键查询
userMapper.selectById(7);
//根据ID 批量查询
userMapper.selectBatchIds(Arrays.asList(7,8,9));
map.put("name",7);
//只能等值查询 name=7 逻辑查询只能使用 QueryWrapper
List<User> users1 = userMapper.selectByMap(map);
//统计数量
wrapper.gt("age",1);
Integer integer = userMapper.selectCount(wrapper);
//把查询的结果封装刀map 集合里面
wrapper.le("age",100);
userMapper.selectMaps(wrapper);

分页:

需要添加一个配置:

@Configuration
public class MyBatisPlusConfig {
    @Bean
    public PaginationInnerInterceptor paginationInnerInterceptor()
    {
        return new PaginationInnerInterceptor();
    }
}
//分页查询 第一个参数是当前页 第二个参数是每一页的有多少数据
Page<User> page=new Page<>(1,2);
Page<User> userPage = userMapper.selectPage(page, null);
userPage.getSize();
//total
long total = userPage.getTotal();
//每一页的数据
List<User> records = userPage.getRecords();
/把结果封装到一个map 集合
Page<Map<String,Object>> objectPage = new Page<>();
userMapper.selectMapsPage(objectPage,null);
//查询单个数据
User user = userMapper.selectOne(null);
自定义sql
  @Data
public class UserVo {
    private Long id;
    private String name;
    private String mtp;
    private String remark;
}
@Select("")
List<UserVo> productList(Integer id);
如果数据的字段和vo的字段不一样 可以在@Select("")给字段起一个新的名字。
//删除
//根据条件构造器删除
userMapper.delete(wrapper);
//根据ID删除
userMapper.deleteById(1);
//批量的删除
userMapper.deleteBatchIds(Arrays.asList(1,2,3));
//把条件封装刀一个map根据整个删除
map.put("age",13);
map.put("name","lisi");
userMapper.deleteByMap(map);
/添加
userMapper.insert(new User());
//修改
//查询出来的数据
User user1 = userMapper.selectOne(null);
//这个wrapper 是条件 比如where id=1 修改这条记录
userMapper.update(user1,wrapper);
//根据这个对象的ID修改 名字修改成jiang
User user2 = new User();
user.setId(100L);
user2.setName("jiang");
userMapper.updateById(user2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值