QueryWrapper、LambdaQueryWrapper、QueryChainWrapper、LambdaQueryChainWrapper比较

SELECT id,order_msg FROM my_mysql.order WHERE order_msg = '57x' // x 代表序号

 

QueryWrapper

QueryWrapper<OrderEntity> queryWrapper = new QueryWrapper<OrderEntity>().select("id","order_msg").eq("order_msg","571");
orderMapper.selectOne(queryWrapper); // SELECT id,order_msg FROM my_mysql.order WHERE (order_msg = '571')
1
2
LambdaQueryWrapper

// LambdaQueryWrapper // queryWrapper.lambda() 可以转换成此种 wrapper
LambdaQueryWrapper<OrderEntity> lambdaQueryWrapper = new LambdaQueryWrapper<OrderEntity>().select(OrderEntity::getId, OrderEntity::getOrderMsg).eq(OrderEntity::getOrderMsg,"572");
orderMapper.selectOne(lambdaQueryWrapper); // SELECT id,order_msg FROM my_mysql.order WHERE (order_msg = '572')
1
2
3
QueryChainWrapper

QueryChainWrapper<OrderEntity> queryChainWrapper = new QueryChainWrapper<>(orderMapper).select("id", "order_msg").eq("order_msg","573");
queryChainWrapper.one(); // SELECT id,order_msg FROM my_mysql.order WHERE (order_msg = '573')
1
2
LambdaQueryChainWrapper

LambdaQueryChainWrapper<OrderEntity> lambdaQueryChainWrapper = new LambdaQueryChainWrapper<>(orderMapper).select(OrderEntity::getId, OrderEntity::getOrderMsg).eq(OrderEntity::getOrderMsg,"574");
lambdaQueryChainWrapper.one(); // SELECT id,order_msg FROM my_mysql.order WHERE (order_msg = '574')
1
2
总结
QueryWrapper 和 lambdaQueryWrapper 需要将 封装的wrapper 提供给 orderMapper,调用orderMapper的方法,才可以使用。

QueryChainWrapper 和 LambdaQueryChainWrapper 可以直接链式调用数据执行操作的方法

带 lambda 的 wrapper 可以使用lambda表达式,选择列,设置列值,反之不带lambda的就需要手动指定列名

  

posted @ 2022-05-16 10:25  蓝鲸也是鲸  阅读(843)  评论(1编辑  收藏  举报