Mybatis-15.动态SQL-if
一.动态SQL

比如只想查询名字中带‘张’的,其他的都不进行条件筛查

会发现什么也查询不出来

我们希望SQL语句能够根据我们所输入的查询值进行动态的变化,就需要使用到动态SQL。动态SQL中有很多标签,其中用于条件判断的就是标签<if>。
二.<if>标签

如果"name"字段等于null,那么就不执行name字段的判断,以此类推。

改造后的代码如上所示。
再次运行查询代码,发现没有报错,可以查出来。
![]()
继续查询,也没有问题。
![]()
执行这条查询语句,发现报错!
报错SQL语法错误,在‘and’附近。
![]()
查看SQL语句,发现当name为null时,会多一个and。

那and可以删除吗?答案是不可以,因为如果name不等于null,gender也不等于null,那么没有and连接SQL语句同样错误。
那怎么解决呢?
三.<where>标签
<where>标签的作用:
1.动态生成where关键字,如果条件都不成立,不会生成where关键字。如果条件成立,生成where关键字。
2.自动去除条件前面多余的and或者or。
改造后:

再次测试,
都通过。
四.总结

相关文章:
Mybatis-15.动态SQL-if
一.动态SQL 比如只想查询名字中带‘张’的,其他的都不进行条件筛查 会发现什么也查询不出来 我们希望SQL语句能够根据我们所输入的查询值进行动态的变化,就需要使用到动态SQL。动态SQL中有很多标签,其中用于条件判断的就是标签<if>。…...
gb28181-sip注册流程
gb28181-sip注册流程 当客户端第一次接入时,客户端将持续向Server端发送REGISTER消息,直到Server端回复"200 OK"后结束 它的注册流程如下图: 注册流程: 1 . SIP代理向SIP服务器发送Register请求: 第1行表…...
WEBRTC教程:局域网怎么调试,http://172.19.18.101:8080 ,无法访问摄像头和麦克风,请检查权限
在局域网中使用 WebRTC 时,无法访问摄像头和麦克风通常是因为浏览器的安全策略限制了 getUserMedia API 的使用。如果你在非 localhost 或非 HTTPS 环境下访问网页,浏览器会阻止访问摄像头和麦克风。 解决方案 在局域网中调试 WebRTC 时,你…...
Apache POI—读写Office格式文件
Apache POI 是一个开源的 Java 库,用于读写 Microsoft Office 格式的文件,主要包括 Excel、Word 和 PowerPoint 等文档。POI 对 Excel 文件的支持最为完善,通过 POI 可以方便地进行 Excel 文件的创建、编辑、读取等操作。 1. Apache POI 简介…...
3162. 优质数对的总数 I
3162. 优质数对的总数 I 题目链接:3162. 优质数对的总数 I 代码如下: class Solution { public:int numberOfPairs(vector<int>& nums1, vector<int>& nums2, int k){int res 0;for (int i 0; i < nums1.size(); i){for (int…...
(五)Web前端开发进阶2——AJAX
目录 2.Axios库 3.认识URL 4.Axios常用请求方法 5.HTTP协议——请求报文/响应报文 6.前后端分离开发 7.Element组件库 1.Ajax概述 AJAX 是异步的 JavaScript和XML(Asynchronous JavaScript And XML)。简单点说,就是使用XMLHttpRequest 对象与服务器通信。它可…...
数据结构(java)——数组的构建和插入
数组:地址连续,可以直接通过下标获取数组中的内容。(下标从0开始) 新建的数组都有默认值 //创建数组//Java是强类型 数组必须声明类型//以下是三种创建数组的方式 int[] arr {2,23,55,12,34,53};int[] brrnew int[5];int[] crrn…...
AI-CNN-验证码识别
1 需求 GitHub - xhh890921/cnn-captcha-pytorch: 小黑黑讲AI,AI实战项目《验证码识别》 2 接口 3 示例 config.json {"train_data_path": "./data/train-digit/","test_data_path": "./data/test-digit/","train_…...
React 前端框架全面教程:从入门到进阶
React 前端框架全面教程:从入门到进阶 引言 在现代前端开发中,React 作为一款流行的 JavaScript 库,以其组件化、声明式的特性和强大的生态系统,成为了开发者的首选。无论是构建单页应用(SPA)还是复杂的用…...
重拾CSS,前端样式精读-布局(弹性盒)
前言 本文收录于CSS系列文章中,欢迎阅读指正 接着上篇布局文章继续介绍当前流行的布局方式 Flexbox布局 长久以来,CSS 布局中唯一可靠且跨浏览器兼容的创建工具只有floats和positioning。这两个工具大部分情况下都很好使,但是在某些方面它…...
Python 使用 LSTM 进行情感分析:处理文本序列数据的指南
使用 LSTM 进行情感分析:处理文本序列数据的指南 长短期记忆网络(LSTM)是一种适合处理序列数据的深度学习模型,广泛应用于情感分析、语音识别、文本生成等领域。它通过在训练过程中“记住”过去的数据特征来理解和预测序列数据的…...
MySQL:INSERT IGNORE 语句的用法
INSERT IGNORE 语句 在MySQL中,INSERT IGNORE 语句用于尝试向表中插入一行数据,但如果插入操作会导致表中唯一索引或主键的冲突,MySQL将忽略该操作并继续执行,而不会引发错误。这意味着,如果表中已经存在具有相同唯一…...
java模拟进程调度
先来先服务优先级调度短作业优先调度响应比优先调度 代码 import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Scanner;class Main {static class tasks{int id;//序号char jinchengname;//进程名int jinchengId;//double a…...
大模型AI在教育领域有哪些创业机会?
大模型AI在教育领域有很多创业机会,尤其是在个性化学习、教学辅助、教育资源优化等方面。以下是一些潜在的创业机会: 个性化学习平台 学习路径定制:根据学生的学习数据与兴趣,为他们设计个性化的学习路径,提供适合的课…...
网页上视频没有提供下载权限怎么办?
以腾讯会议录屏没有提供下载权限为例,该怎么办呢? 最好的办法就是找到管理员,开启下载权限。如果找不到呢,那就用这个办法下载。 1.打开Microsoft Edge浏览器的扩展 2.搜索“视频下载”,选择“视频下载Pro” 3.点击“…...
【去哪里找开源商城项目】
有很多途径可以找到开源项目,以下是一些常用的方法: 开源代码托管平台:许多开源项目都托管在平台上,例如GitHub、GitLab和Bitbucket。你可以在这些平台上浏览项目,搜索关键词,查看项目的星级和贡献者数量等…...
ei会议检索:第二届网络、通信与智能计算国际会议(NCIC 2024)
第二届网络、通信与智能计算国际会议(NCIC 2024)将于2024年11月22-25日在北京信息科技大学召开,聚焦网络、通信与智能计算,欢迎国内外学者投稿交流,录用文章将在Springer出版,并提交EI等检索。 NCIC 2024&a…...
vue添加省市区
主要参考“element”框架:Element - The worlds most popular Vue UI framework <div class"block"><span class"demonstration">默认 click 触发子菜单</span><el-cascaderv-model"value":options"optio…...
运维监控丨16条常用的Kafka看板监控配置与告警规则
本期我们针对企业运维监控的场景,介绍一些监控配置和告警规则。可以根据Kafka集群和业务的具体要求,灵活调整和扩展这些监控配置及告警规则。在实际应用场景中,需要综合运用多种监控工具(例如Prometheus、Grafana、Zabbix等&#…...
ECharts饼图,配置标注示例
const color ["#00FFB4", "#5498FD", "#6F54FD", "#FD5454", "#FDA354",]const datas [{ value: 100, name: "一年级" },{ value: 70, name: "二年级" },{ value: 184, name: "三年级" },{…...
Claude代码生成工具:AI编程协作新范式与工程实践
1. 项目概述:一个专为Claude设计的代码生成与协作工具最近在跟几个做AI应用开发的朋友聊天,大家普遍反映一个痛点:虽然像Claude这样的AI助手在代码理解和生成上表现不错,但实际工作流中还是存在不少摩擦点。比如,生成的…...
本地化AI代码助手Refly:从部署到调优的完整实践指南
1. 项目概述:一个面向开发者的AI代码生成与重构工具如果你是一名开发者,无论是前端、后端还是全栈,大概率都经历过这样的场景:面对一个复杂的业务逻辑,或者一段需要重构的祖传代码,你坐在电脑前,…...
3个核心功能深度解析:Recaf字节码搜索的技术实践
3个核心功能深度解析:Recaf字节码搜索的技术实践 【免费下载链接】Recaf The modern Java bytecode editor 项目地址: https://gitcode.com/gh_mirrors/re/Recaf Recaf是一款现代化的Java字节码编辑器,专为逆向工程和代码分析设计。作为一款功能强…...
ThunderAI:用大语言模型插件打造智能邮件工作流
1. 项目概述:当AI助手遇见邮件客户端 如果你和我一样,每天要在Thunderbird里处理几十甚至上百封邮件,那你肯定也经历过那种“邮件疲劳”——写回复时词穷、面对长篇大论需要快速提炼要点、或者想给邮件分个类却懒得手动打标签。传统的邮件客…...
如何用nmrpflash拯救你的Netgear路由器:终极免费救援指南
如何用nmrpflash拯救你的Netgear路由器:终极免费救援指南 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 你的Netgear路由器突然变成"砖头"了吗?固件升级失败、系统崩溃…...
Rust异步运行时:从Tokio到生产环境实践
Rust异步运行时:从Tokio到生产环境实践 引言 异步编程是现代高性能后端服务的关键技术。Rust通过async/await语法和强大的运行时实现,提供了卓越的异步性能。 本文将深入探讨Rust的异步运行时,包括Tokio、async-std等运行时的原理、使用方法和…...
ThinkPad风扇控制终极指南:TPFanCtrl2实现128级精准调速与双风扇独立管理
ThinkPad风扇控制终极指南:TPFanCtrl2实现128级精准调速与双风扇独立管理 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 TPFanCtrl2是一款专为ThinkPad笔记…...
GetQzonehistory:5分钟免费备份你的QQ空间青春回忆
GetQzonehistory:5分钟免费备份你的QQ空间青春回忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在担心那些承载青春记忆的QQ空间说说会随着时间消失吗?GetQ…...
C语言程序设计核心详解 结构体与链表概要详解
1.结构体类型代码语言:cAI代码解释struct 结构体类型名 {成员1的定义;成员2的定义;.........成员n的定义; }结构体名(可以省略);1.1 构造与定义结构体类型构造结构体一共有三种方法方法一:代码语言:cAI代码解释struct student {int sn;int ag…...
用NE5532和LM1875T手搓一个9V供电的双工对讲机(附完整电路图与Multisim仿真文件)
用NE5532和LM1875T打造9V供电的双工对讲机:从电路设计到实物调试全指南 周末整理零件箱时翻出几片NE5532和LM1875T,突然想起学生时代用这些经典芯片做的第一个对讲机项目。那种通过自己设计的电路实现实时对话的成就感,至今记忆犹新。本文将…...
