MyBatis-plus(2)

news/2024/10/31 1:28:01/

实现逻辑查询:

1)and:其实如果只是想实现and查询,只是需要连续调用对应的方法或者是通过wrapper对象实现两次调用即可

2)and的嵌套:假设现在有这样一条语句

select * from user where username="张三" and (age>26 or userID <19),这条SQL语句实际上在执行的时候会先执行括号内的语句,那么这就出现了and的嵌套情况,通过mybatis-plus下面的代码如下:

 

 @Testvoid run() {LambdaQueryWrapper<User> wrapper=new LambdaQueryWrapper<>();wrapper.eq(User::getUsername,"张三").and(new Consumer<LambdaQueryWrapper<User>>() {@Overridepublic void accept(LambdaQueryWrapper<User> userLambdaQueryWrapper) {userLambdaQueryWrapper.gt(User::getAge,26).or().lt(User::getUserID,19);}});List<User> list=mapper.selectList(wrapper);System.out.println(list);}}

3)or: 

4)嵌套的or查询:select * from user where username="张三" or (age>90 and userID=1)

  @Testvoid run() {LambdaQueryWrapper<User> wrapper=new LambdaQueryWrapper<>();wrapper.eq(User::getUsername,"张三").or(new Consumer<LambdaQueryWrapper<User>>() {@Overridepublic void accept(LambdaQueryWrapper<User> userLambdaQueryWrapper) {userLambdaQueryWrapper.ge(User::getAge,20).eq(User::getUserID,1);}});List<User> list=mapper.selectList(wrapper);System.out.println(list);}

 5)逻辑查询:直接讲条件拼接在where语句的后面

6)自定义条件查询: 对于一些复杂的条件,可以不通过API的方式来进行调用,可以直接将查询条件作为一个字符串:

7)last查询:可以通过wrapper中的last方法来进行传递一个字符串,然后mybatis-plus就会将这个字符串拼接到SQL的末尾,可以实现分页查询 

8)exists:

select * from user where exists(select * from user where age>90)

notexists的用法恰好相反

select * from user where not exists(select * from user where age>90);

exists上面SQL语句的意思是如果括号中的结果是false,也就是说无法查询出语句,那么where前面的select * from user也是失效的,不会展现出任何结果,如果括号中的结果是true,也就是说后面括号中的语句成功的查询出了结果,那么前面的语句正常执行

9)select查询:可以有效地指明我们要查询哪些信息,由此可知select只是用于查询特定的字段,select没有指明的字段是不会进行查询的

 

主键自增策略的问题:

如果进行了水平分表,那么此时主键还是应该保证是自增的,主键在不同表中还是不可以重复的

 

 


http://www.ppmy.cn/news/332818.html

相关文章

8g内存和16g内存区别 mac_8GB和16GB内存的M1 MacBook性能有什么不同?

描述 Max Tech 今天分享了一个视频&#xff0c;重点介绍了 8GB M1 MacBook Pro 和 16GB M1 MacBook Pro 之间的性能。 该视频包括一系列跑分测试&#xff0c;从 Geekbench、Cinebench 到 RAW 导出测试。 Geekbench 和 Cinebench 测试并未显示 8GB 和 16GB 型号之间的性能差异&a…

android手机8g内存够用嘛,安卓旗舰机8GB运行内存到底够不够用?有必要上12GB吗?...

手机运行是否流畅&#xff0c;主要看三大方面&#xff0c;第一是处理器性能、第二是系统优化、第三就是运行内存了。或许运行内存对于苹果手机来说&#xff0c;影响不是特别大&#xff0c;毕竟三年前的iphone8&#xff0c;只有2GB运行内存&#xff0c;但放在今年运行还是十分流…

android 6gb和8gb区别,手机6GB内存和8GB内存的差距到底有多大?你可能被忽悠了!...

原标题&#xff1a;手机6GB内存和8GB内存的差距到底有多大&#xff1f;你可能被忽悠了&#xff01; 随着科技的发展&#xff0c;现在手机已经是人们生活中必需品&#xff0c;当然现在手机内存也是越来越大&#xff0c;4G运行内存已经是标配了&#xff0c;然而很多人都在好奇6GB…

计算机运行时内存会超吗,电脑运行内存将达到128GB

电脑运行内存将达到128GB 计算机技术的微小进步总是令人兴奋的&#xff0c;比如处理器主频突破1GHz、硬盘容量突破1TB&#xff0c;这些进化都让人们获得了更好的使用体验。将来的电脑&#xff0c;将会发生怎样的变化呢?让我们了解一下吧! 现在&#xff0c;RAM(运行内存)已经突…

android 6gb和8gb区别,6GB和8GB区别到底有多大?千万别再花冤枉钱了

原标题&#xff1a;6GB和8GB区别到底有多大&#xff1f;千万别再花冤枉钱了 手机到底选多大的内存比较合适&#xff1f; 相信不少人会在选购手机的时候会纠结买多大内存的更合适&#xff0c;内存越高价格就越贵&#xff0c;那如何才能不花冤枉钱买到更合适的内存版本呢&#xf…

android手机8g内存够用嘛,8G 运存已经过时了?手机运存到底要多大才够用?

原标题&#xff1a;8G 运存已经过时了&#xff1f;手机运存到底要多大才够用&#xff1f; 前几年的时候&#xff0c;我们大多数人还在用着2GB的手机&#xff0c;可短短几年时间&#xff0c;手机运存发展的飞快&#xff0c;6GB已经成了千元机的标配&#xff0c;而旗舰机基本都用…

手机运行内存越大就越好吗?4GB与8GB的差距真的很明显吗?

你这里说的手机内存指的应该是运行内存&#xff0c;手机内存不能说越大越好&#xff0c;但是在同等条件下&#xff0c;内存大点没有什么坏处&#xff0c;毕竟内存是建立在手机CPU和闪存芯片之间的高速存储通道&#xff0c;如果容量不够CPU就只能到速度较慢的闪存芯片里调取数据…

M1版MacBook Pro 8GB和16GB内存设备的对决

该测试包括一系列跑分测试&#xff0c;从Geekbench、Cinebench到RAW导出测试。Geekbench和Cinebench测试并未显示8GB和16GB型号之间的性能差异&#xff0c;但是旨在最大化RAM使用率的其他测试确实显示出一些差异。 模仿编译代码的MaxTechXcode跑分测试显示16GB型号得分为122&am…