当前位置: 首页 > news >正文

网站建设企业网站价格福州建企业网

网站建设企业网站价格,福州建企业网,如何做漫画赚钱的网站,全国大学生职业生涯规划大赛官网文章目录1. 文章引言2. 代码演示3. 分析LambdaQueryWrapper3.1 引入LambdaQueryWrapper的原因3.2 LambdaQueryWrapper和QueryWapper的区别4. 重要总结1. 文章引言 今天在公司写代码时,发现同事使用LambdaQueryWrapper来查询数据,而我一直习惯使用QueryW…

文章目录

  • 1. 文章引言
  • 2. 代码演示
  • 3. 分析LambdaQueryWrapper
    • 3.1 引入LambdaQueryWrapper的原因
    • 3.2 LambdaQueryWrapper和QueryWapper的区别
  • 4. 重要总结

1. 文章引言

今天在公司写代码时,发现同事使用LambdaQueryWrapper来查询数据,而我一直习惯使用QueryWrapper

我对此便来了兴趣,决定尝试了解LambdaQueryWrapper

2. 代码演示

为了分析LambdaQueryWrapper,给出如下两段代码:

  1. 通过LambdaQueryWrapper查询
@Test
public void testLambdaQueryWrapper(){//初始化变量Long applicationId = 62L;String type = "pageFrameApp";// LambdaQueryWrapper查询LambdaQueryWrapper<AppConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();lambdaQueryWrapper.eq(AppConfig::getAppId, applicationId);if (isNotNull(type)) {lambdaQueryWrapper.eq(AppConfig::getConfigType, type);}long count = appConfigService.count(lambdaQueryWrapper);//输出统计数量System.out.println("输出统计结果:"+count);
}

输出统计结果如下图:

在这里插入图片描述

输出mybatis-plus打印的SQL语句,如下所示:

JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@62c02089] will not be managed by Spring
==>  Preparing: SELECT COUNT( * ) FROM app_config WHERE (app_id = ? AND type = ?)
==> Parameters: 62(Long), pageFrameApp(String)
<==    Columns: COUNT( * )
<==        Row: 1
<==      Total: 1
  1. 通过QueryWrapper查询
@Test
public void testQueryWrapper(){//初始化变量Long applicationId = 62L;String type = "pageFrameApp";// LambdaQueryWrapper查询QueryWrapper<AppConfig> queryWrapper = new QueryWrapper<>();queryWrapper.eq("app_id", applicationId);if (isNotNull(type)) {queryWrapper.eq("type", type);}long count = appConfigService.count(queryWrapper);//输出统计数量System.out.println("输出统计结果:"+count);
}

输出结果如下图所示:

在这里插入图片描述

输出mybatis-plus打印的SQL语句,如下所示:

JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@31d09031] will not be managed by Spring
==>  Preparing: SELECT COUNT( * ) FROM app_config WHERE (app_id = ? AND type = ?)
==> Parameters: 62(Long), pageFrameApp(String)
<==    Columns: COUNT( * )
<==        Row: 1
<==      Total: 1

3. 分析LambdaQueryWrapper

由上面两段代码的演示来看,你会神奇地发现:

  1. 输出结果是相同的

  2. mybatis-plus打印的SQL语句也是相同

为什么会相同呢?我们不妨去看看它们的源码。

QueryWrapper继承AbstractWrapper这个类,如下图所示:

在这里插入图片描述

LambdaQueryWrapper继承AbstractLambdaWrapper,而AbstractLambdaWrapper继承是AbstractWrapper,如下图所示。

在这里插入图片描述

你会发现,不论是LambdaQueryWrapper,还是QueryWrapper,本质上继承的都是AbstractWrapper这个抽象类。

因而,它们的执行结果相同,只是查询方式不同而已。

3.1 引入LambdaQueryWrapper的原因

但是,既然有了QueryWrapper,为什么还要有LambdaQueryWrapper?我认为有以下两点:

  1. 适配jdk1.8

我们都知道,现在主流jdk的版本是jdk1.8,而jdk1.8引入了Lambda表达式。

MyBatis-Plus为了适配jdk1.8,让路走得更宽,才引入了LambdaQueryWrapper

  1. 让代码变的更简单

我们再次去看上述QueryWrapper的代码,eq方法要手动写如数据表的字段,我们偶尔会写错。

同时,去看上述LambdaQueryWrapper的代码,eq方法是通过对象属性去映射数据表的字段。

基于以上两点,我认为有必要引入LambdaQueryWrapper类。

3.2 LambdaQueryWrapper和QueryWapper的区别

QueryWrapper要手动写入数据表的字段,千万不要写错数据表的字段,比如上述代码中的eq方法。

LambdaQueryWrapper虽然不用引入数据表的字段,而是通过对象的属性去映射,但这容易出错。

【注意】这里对象的属性是驼峰格式的,不然会报出:unknown column 'xxx' in 'where clause'

比如数据表的字段是app_id,而对象的属性是appid,而我们又没有加上@TableField("app_id")注解 (注解的value值是数据表的字段),如下代码所示:

/** 应用id */
private Long appid;

此时启动测试类,便报出Unknown column 'appid' in 'where clause'问题,如下图所示:

在这里插入图片描述

若我们加上@TableField("app_id")注解,如下代码所示:

/** 应用id */
@TableField("app_id")
private Long appid;

此时启动测试类,便不会报错,如下图所示:

在这里插入图片描述

当然,我们把appid修改为appId,即便不添加@TableField("app_id")注解,通过LambdaQueryWrapper查询也不会出错。

4. 重要总结

我们在使用QueryWrapper时,要手动写入数据表的字段,注意字段不要写错,不然也会报出unknown column 'xxx' in 'where clause'这个错误

此外,我们在使用LambdaQueryWrapper时,要注意对象的属性和数据表字段的映射,不然极容易报出unknown column 'xxx' in 'where clause'这个错误。

http://www.yayakq.cn/news/886459/

相关文章:

  • 服装购物网站建设网站后台文章删了 怎么前台还有
  • 我们做网站 老公弟弟也跟着做网页制作和网站建设
  • 哪个网站可以做练习题申请域名就可以做网站了吗
  • 八喜网站建设wordpress 全局变量
  • 怎么做新网站上线通稿专门做食品的网站
  • 黑龙江建设教育网站有没有免费手游代理
  • 做一个展示网站多少钱中铁建设集团北京工程有限公司
  • 如何开一个网站100个免费设计网站
  • 电子工程专辑网站产品宣传类网站设计
  • 站酷网在线官网萝卜建站app
  • 网站建设的市场需求设计企业展厅公司
  • 个体工商户可以网站建设吗下载app下载
  • 入门网站分析应该怎么做网络工程公司属于什么行业
  • 网站页面优化工具wordpress框架视频
  • 网站收录不增加自己做网站seo优化
  • 设计常去的网站网站公司成本
  • 那里有制作网站企业海宁自适应网站建设
  • 电商网站设计方案大全品牌视觉识别系统案例
  • 打折网站建设教程下载大型旅行社自建网站
  • 顺义建站好的公司建站网站多少钱
  • 个人做商机网站如何盈利wordpress开启memcached
  • 网站备案登记表信用中国官网企业查询
  • 网站公司建设网站万网手机网站
  • 北京学校网站建设公司建好的网站能修改吗
  • 昆明网站建设询力鼎科技低价格制作网站
  • 自己如何在家做网站点赞分享打赏 wordpress
  • 上海做网站公司品划网络苏宁易购网站建设水平
  • 为什么做美食视频网站wordpress 营销模板
  • 长沙网站排名系统wdcp 修改默认网站
  • 汕头网站优化公司公司网站想自己做