SpringBoot整合MybatisPlus实战动态SQL,java分布式架构
choose标签 ,配合when ,otherwise 标签使用
================================================================================================
choose when otherwise 标签可以帮我们实现 if else 的逻辑。一个 choose 标签至少有一个 when,
最多一个otherwise。
mapperselect from test where 1=1 and id=#{id} and username=#{username} and 1=2
打印结果
找不到 周 ,因为我只有周杰伦或者周杰 。 这个choose和 if 的功能有点类似,但是和if 不同的是choose 有点你有什么我就根据你给的查,而if 则是你传了所有条件,我逐个判断你的条件然后给你查。if 更多适用于表单查询的时候用。而choose 更多的时候。。。其实这两个达到的目的是一样的,我更喜欢用choose.
where 标签
========================================================================
mapperselect from test and username like concat(’%’, #{username}, ‘%’) and ip=#{ip}
结果
- 我什么条件也没传,他在where中找不到匹配的条件就查找了全部给了我,这种其实和上面choose 中的最后那个条件有异曲同工之处,上变改成1=1 一样的效果。
foreach 标签
==========================================================================
- mapperselect from test where id in #{id}
代码
@RequestMapping(value = “/dongtaiSql3”)
@ResponseBody
public void dongtaiSql3() {
ArrayList arrayList = new ArrayList();
arrayList.add(6);
arrayList.add(5);
List selectByTestSelective = testMapper.selectByTestIdList(arrayList);
for (Test test : selectByTestSelective) {
System.out.println(test.getUsername());
}
}
- 结果
这个标签太好用了,foreach 也可以用来批量插入数据,比如:
mapperinsert into test(username, gender, ip) values ( #{test.username}, #{test.gender},#{test.ip} )
代码
Test example2 = new Test();
example2.setUsername(“郭富城”);
example2.setGender(1);
example2.setIp(“123232113122”);
Test example3 = new Test();
example3.setUsername(“邱淑贞”);
example3.setGender(0);
example3.setIp(“123232113333”);
ArrayList arrayList = new ArrayList();
arrayList.add(example);
arrayLis
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
t.add(example2);
arrayList.add(example3);
int selectByTestSelective = testMapper.insertList(arrayList);
if (selectByTestSelective == 1) {
System.out.println(“批量插入:”+arrayList.size()+“条数据”);
}
}
- 结果
妈的 这里的mapper 每次修改都要重新启动,很是麻烦。注意这里 #{test.username}, #{test.gender},#{test.ip} 最后不要有逗号,否则会报一个sql语法错误,原因是多了,。还有就是这里如果传的值是list等非实体类的参数的时候,是不用声明parameterType 的。
foreach 的变量说明collection: 必填, 集合/数组/Map的名称. item: 变量名。即从迭代的对象中取出的每一个值 index: 索引的属性名。当迭代的对象为 Map 时, 该值为 Map 中的 Key. open: 循环开头的字符串 close: 循环结束的字符串 separator: 每次循环的分隔符
bind 标签
=======================================================================
使用 bind 来让该 SQL 达到支持两个数据库的作用
mapperselect from test where 1=1 and username like #{nameLike} and ip=#{ip}
代码
@RequestMapping(value = “/dongtaiSql5”) @ResponseBody public void dongtaiSql5() { Test example = new Test(); example.setUsername(“周”); example.setIp(“cium”); example.setId(27); int selectByTestSelective = testMapper.updateTestSetTag(example); System.out.println(selectByTestSelective);
}
- 结果
发现依然可以。 说明这个bind 就是绑定一些变量的 ,nameLike 就代表了username 的模糊搜索,就是如果别的地方用得到它的模糊搜索,拿来用即可。用法是 like 后面直接加上 #{nameLike }。
set 标签
======================================================================
这个标签常用于做修改语句,比如
mapperUPDATE Products username = #{username}, ip = #{ip}, id = #{id}
代码
@RequestMapping(value = “/dongtaiSql5”) @ResponseBody public void dongtaiSql5() { Test example = new Test(); example.setUsername(“周”); example.setIp(“cium”); example.setId(27); int selectByTestSelective = testMapper.updateTestSetTag(example); System.out.println(selectByTestSelective);}
- 结果
- 这个set 说白了就是update语句的 set 时候的一个灵活操作。
trim 标签
SpringBoot整合MybatisPlus实战动态SQL,java分布式架构相关推荐
- SpringBoot整合MybatisPlus实战动态SQL,java定时器实现原理
打印结果 也就是说,你传什么值 它会根据你传的值来拼接sql,不传值则不拼接,这种相对来说比较简单,易于理解. [注意] 下文所有的请求都是通过postman发出的. include标签 ====== ...
- Springboot框架整合Mybatis-plus实战动态SQL以及常见的Mybatis面试题
目录 MyBatis的动态SQL是最令人喜欢的功能 if 标签 include标签 choose标签 ,配合when ,otherwise 标签使用 where 标签 foreach 标签 bind ...
- Mybatis最拿得出手的功能之一 SpringBoot整合Mybatis-Plus 实战之动态SQL
MyBatis的动态SQL是最令人喜欢的功能 在了解 动态SQL之前,你首先得知道一个表达式 OGNL,这个是基础! 面试常问问题 : Mybatis 中$与#的区别? #是将传入的值当做字符串的形式 ...
- SpringBoot整合Mybatis-plus实现增删查改
今天给大家分享一下SpringBoot整合Mybatis-plus的增删查改案例. pom.xml <?xml version="1.0" encoding="UT ...
- 实践丨SpringBoot整合Mybatis-Plus项目存在Mapper时报错
本文分享自华为云社区<SpringBoot整合MybatisPlus项目存在Mapper时运行报错的问题分析与修复>,作者:攻城狮Chova . 异常信息 在SpringBoot运行测试M ...
- SpringBoot整合Mybatis-Plus
这篇文章介绍一个SpringBoot整合Mybatis-Plus,提供一个小的Demo供大家参考. 已经很久没有写文章了,最近家里有点事刚刚处理完,顺便也趁机休息了一段时间.刚回到公司看了一下码云,发 ...
- 10-Java框架-SpringBoot整合MyBatis-Plus
一.MyBatis-Plus介绍 官网 https://baomidou.com/ MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变 ...
- 超详细教程:SpringBoot整合MybatisPlus
本文分享自华为云社区<SpringBoot整合MybatisPlus[超详细]>,原文作者:牛哄哄的柯南. 创建个SpringBoot项目 选生所需的依赖:== 我把application ...
- SpringBoot整合Mybatis-Plus,代码生成器Generator以及Swagger(附源码、图文学习、Postman、ApiPost第三方工具的使用)
目录 一.SpringBoot整合Mybatis-plus 1.引入依赖 2.创建数据库 3.整合代码生成器Generator 二.什么是Swagger2,有什么作用? 三.SpringBoot整合S ...
最新文章
- 笑傲江湖,独孤求败-NetScaler MAS应用交付神功详解
- 11.23关于微信JSAPI缺少参数的问题解决
- 套接字有哪些类型?socket有哪些类型?
- Java开发中文件读取方式总结
- Asp.Net Core(.net内核)
- java netty html_源码时代JAVA干货分享|带你用Netty框架实现WebSocket通信
- matlab自动排版,工具方法| Matlab 简单绘图与排版
- 【图像融合】简单加权融合
- 团队作业2 需求分析与原型设计
- VMware OVF 协议
- virtuoso根据原理图绘制版图并联接_Cadence教程2——反相器原理图仿真以及版图绘制...
- UAV运动学方面的约束
- 分享109个PHP源码,总有一款适合您
- 媒体查询(Media Query)
- ajax 等待,等待所有的ajax请求都完成
- 基于高德地图JsAPI进行浏览器精确定位,实现手机端考勤打卡功能
- VoIP通话-基于SIP协议的Asterisk(一)-实现流程
- 计算机网络:验证性试验
- 计算机维修知识题库,职业技能鉴定国家题库统一试卷 中级计算机维修工知识试卷 B卷...
- JQuery 大写输入提示
热门文章
- 初入python世界——python基础语法
- token系统讲解及过期处理
- php捕捉Warning、Notice错误
- 东芝笔记本出现w ndows,夏日白色清新范 13.3英寸东芝L830评测
- vue基础模板代码块设置
- 自控力如何改善了我的生活
- 管理者需换位思考 员工都是CEO
- ubuntu20.04下安装qq和微信(最新)
- python Numpy模块汇总(字母排序) 备注:内容很多,用control/command(Mac系统)+ F可以在网页内关键词查找,希望你能找到想要的内容
- PureMVC游戏框架解析 理解其中包含的设计模式