MybatisPlus 使用小技巧

配置

开启日志
logging:
  level:
    com.example.demo: DEBUG
    sql.com.example.demo: DEBUG
    # com.baomidou.mybatisplus: ERROR 
常用注解
// 数据库不是用该字段 
@TableField(exist = false)  
// 表名称
@TableName(value = "ai_assistant_management")
// 字段名称 
@TableField(value = "")
// 主键
@TableId(value = "")

增强方法

查询
1.根据Id查询
AiAssistantManagement dto = aiAssistantManagementQueryMapper.selectById(1);
2.批量查询
List<AiAssistantManagement> list = aiAssistantManagementQueryMapper.selectBatchIds(Arrays.asList(1,2,3));
3.根据Map条件查询
Map<String,Object> columnMap = new HashMap<>();         
columnMap.put("com_id", 5);         
columnMap.put("status", 0);
List<AiAssistantManagement>  list = aiAssistantManagementQueryMapper.selectByMap(columnMap);
4.按照条件查询
QueryWrapper<AiAssistantManagement> ew = new QueryWrapper<>();
ew.eq("status",1)
    // 查询需要的列
    .select("id","com_id","ai_nickname","ai_wx_id") 
    // 排除需要查询的指定字段 
    .select(AiAssistantManagement.class, info->!info.getColumn().equals("ai_assistant_status") && !info.getColumn().equals("ai_nickname"))
    // 模糊查询 省略判断
    .like(StringUtils.isNotBlank("微风"),"ai_nickname","微风")
    // 将sql进行动态拼接
    .apply("date_format(ai_create_time,'%Y-%m-%d') = {0}","2020-06-15")
    // params为map条件,false 对 value为空的过滤,name对字段为name的条件过滤
    .allEq((k,v)->!k,equals("name"),params,false)
    // 子查询 
    .inSql("com_id","SELECT DISTINCT com_id FROM  wx_automation_task WHERE status = 1")
    // 只能使用一次 
    .last("limit 1");
List<AiAssistantManagement> user = aiAssistantManagementQueryMapper.selectList(ew); 
5.使用类做条件查询(模糊查询)
@TableField(condition = SqlCondition.LIKE)
private String aiNickname;
AiAssistantManagement dto = new AiAssistantManagement();
dto.setAiNickname("张三");
QueryWrapper<AiAssistantManagement> ew = new QueryWrapper<>(dto);
6.返回Map 对象 返回对象不需要的字段会过滤null
List<Map<String,Object>> user = aiAssistantManagementQueryMapper.selectMaps(ew);
user.forEach(System.out::println);
7.lambda 表达式
QueryWrapper<AiAssistantManagement> ew = new QueryWrapper<>();
LambdaQueryWrapper<AiAssistantManagement> lambdaQuery = Wrappers.<AiAssistantManagement>lambdaQuery();
lambdaQuery.eq(AiAssistantManagement::getComId,"5");
aiAssistantManagementQueryMapper.selectList(lambdaQuery);


List<AiAssistantManagement> list = new LambdaQueryChainWrapper<AiAssistantManagement>(aiAssistantManagementQueryMapper)
              .like(AiAssistantManagement::getAiNickname,"微风").list();
更新
更新值和条件 返回更新条数
AiAssistantManagement aiAssistantManagement = new AiAssistantManagement();
UpdateWrapper<AiAssistantManagement> updateWrapper = new UpdateWrapper<>();

int rows = aiAssistantManagementQueryMapper.update(aiAssistantManagement,updateWrapper);
将值写在条件中
updateWrapper.eq("name","张三").set("name","张三")
int rows = aiAssistantManagementQueryMapper.update(null,updateWrapper);
lambda => 返回是否更新成功
boolean update =  new LambdaUpdateChainWrapper<AiAssistantManagement>(aiAssistantManagementQueryMapper).eq(AiAssistantManagement::getId,4)               .eq(AiAssistantManagement::getComId,"5").eq(AiAssistantManagement::getStatus,0)
                .set(AiAssistantManagement::getAiNickname,"马泡泡").update();
删除
根据Id删除
aiAssistantManagementQueryMapper.deleteById(1);
根据Map条件删除 => 反回执行条数
Map<String,Object> columnMap = new HashMap<>();
columnMap.put("name","向后");
columnMap.put("com_id", "5");
int rows = aiAssistantManagementQueryMapper.deleteByMap(columnMap);

领域模型

// 插入或更新
insertOrUpdate()
// lambda   
new WxGroupQrCode(wxId).selectOne(Wrappers.<WxGroupQrCode>lambdaQuery().eq(WxGroupQrCode::getWxGroupId, wxId));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值