mybatis 模糊查询的几种方式

1.concat函数和#{}拼接的方式

select * from sys_user where student_name like concat('%',#{studentName},'%')

2.%和${}拼接的方式

select * from sys_user where student_name like '%${studentName}%'

3.concat函数和${}拼接的方式

select * from sys_user where student_name like concat('%','${studentName}','%')

4.||和#{}拼接的方式

select * from sys_user where student_name like '%'||#{studentName}||'%'

分析: (1)${}:表示拼接sql串,将接收到参数的内容不加任何修饰拼接在sql中,可能引发sql注入。 (2)#{ }是预编译处理,MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,使用占位符的方式提高效率,可以防止sql注入。因此最好使用#{ }方式。 (3)concat函数最好不要使用,最好使用||,因为在Oracle中,concat()只能对两个字符串进行拼接(字符串多的话只能嵌套使用),而||可以对字符串无限拼接。
5. 使用band标签

<select id="selectUsersByName" resultType="User">select * from sys_user<where><if test="name != null"><!-- 使用 bind 标签来创建一个可以在 SQL 中使用的模糊匹配变量 --><bind name="pattern" value="'%' + name + '%'"/>and name like #{pattern}</if></where>
</select>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot045新闻推荐系统

推荐使用&#xff1a;谷歌浏览器 后台地址 http://localhost:8080/springboot49j18/admin/dist/index.html 管理员 abo 密码 abo 前台地址&#xff1a;http://localhost:8080/springboot49j18/front/index.html 在src\main\resources\application.yml中编辑 …

TC8002D(3W音频功放IC)是一颗带关断模式的音频功放IC

一、概述 TC8002D是一颗带关断模式的音频功放IC。在5V输入电压下工作时&#xff0c;负载(3Ω)上的平均功率为3W&#xff0c;且失真度不超过10%。而对于手提设备而言&#xff0c;当VDD作用于关断端时&#xff0c;TC8002D将会进入关断模式&#xff0c;此时的功耗极低&…

Leetcode—2079. 给植物浇水【中等】

2024每日刷题&#xff08;130&#xff09; Leetcode—2079. 给植物浇水 实现代码 class Solution { public:int wateringPlants(vector<int>& plants, int capacity) {int ans 0;int step 0;int cap capacity;bool flag false;for(int i 0; i < plants.siz…

对象复制工具Orika,快速实现两个java对象的属性赋值

一、maven依赖引入orika <dependency><groupId>ma.glasnost.orika</groupId><artifactId>orika-core</artifactId><version>1.5.4</version></dependency>二、Orika工具类 import io.swagger.annotations.ApiModel; import io…

武汉星起航:亚马逊五大促销类型全面解析,打造销售狂欢新篇章

在全球电商领域&#xff0c;亚马逊以其卓越的平台优势和创新的促销策略&#xff0c;为卖家和消费者搭建了一座互通的桥梁。今天&#xff0c;武汉星起航在这里解析亚马逊的五大促销类型&#xff0c;帮助卖家和消费者更好地把握商机&#xff0c;享受购物的乐趣。 一&#xff0e;…

sequlize中数据库字段计算当前时间和数据库日期相差天数 返回

在MySQL中&#xff0c;使用DATEDIFF函数可以计算两个日期之间的天数。但是&#xff0c;如果你正在使用Sequelize ORM&#xff0c;你可能需要将这个操作转换为Sequelize可以理解的查询。 以下是一个使用Sequelize来计算当前时间与表中某个日期字段之间天数差的例子&#xff1a;…

怎么做知识付费系统_打造专属用户的知识付费系统

在信息爆炸的时代&#xff0c;知识已经不再是遥不可及的奢侈品&#xff0c;而是每个人都可以触及的宝贵财富。然而&#xff0c;如何有效地获取、整理、分享并实现知识的价值最大化&#xff0c;成为了我们共同面临的挑战。今天&#xff0c;我将为您揭示一个全新的解决方案——搭…

欧盟关键基础设施网络安全防护体系政策法规研究(下)

文章目录 前言三、建立关基实体网络安全责任制并明晰具体职责和义务1、确定关基实体的风险评估职责和义务。2、规定关基实体承担网络安全管理责任、风险管理、事故通知等义务。3、规定关基中数字产品制造商、进货商和经销商等主体的不同义务。4、规定关基中高风险 AI 系统的网络…

实用的Chrome命令大全

Google Chrome 是一款广泛使用的网络浏览器&#xff0c;它支持一系列特殊的命令&#xff0c;这些命令可以通过在地址栏输入特定的关键字来实现。这些命令不仅可以帮助用户快速访问Chrome的内部页面&#xff0c;还可以用于调试和优化网站性能。以下是一些实用的Chrome命令的详细…

24 | MySQL是怎么保证主备一致的?

MySQL 主备的基本原理 内部流程 备库 B 跟主库 A 之间维持了一个长连接。主库 A 内部有一个线程,专门用于服务备库 B 的这个长连接。一个事务日志同步的完整过程是这样的: 在备库 B 上通过 change master 命令,设置主库 A 的 IP、端口、用户名、密码,以及要从哪个位置开始…

添加新的远程仓库地址

要添加一个新的 Git 远程仓库地址&#xff0c;你可以使用 Git 命令行或者 Git 图形化界面工具。这里我介绍一下使用 Git 命令行的方法&#xff1a; 假设你已经有了一个本地的 Git 仓库&#xff0c;并且已经关联了一个远程仓库地址&#xff0c;比如说 origin。现在你要添加一个…

云推流-让ue/unity内容及3D大型模型内容轻松做到网页使用的解决方案

UE&#xff08;Unreal Engine&#xff09;和Unity作为当下最热门的游戏引擎之一&#xff0c;为开发者提供了强大的工具集和平台支持&#xff0c;使得创建高质量、交互式的3D场景变得越来越容易。 然而&#xff0c;当我们把这种较大的资源分享给其他人时&#xff0c;对方可能需要…

如何优化工服识别算法的漏报与误报问题

背景 在一些行业&#xff0c;例如工厂、建筑工地、医院等&#xff0c;员工通常需要穿着特定的工服&#xff0c;工服有助于识别员工、保护员工免受潜在危险以及维护生产环境的清洁度。因此&#xff0c;开发工服识别算法并运用在未穿工服检测系统具有重要的实际意义。 尽管工服…

open feign支持调用form-data的接口

增加 consumes {MediaType.MULTIPART_FORM_DATA_VALUE}) 示例 PostMapping(value "/ocr", consumes {MediaType.MULTIPART_FORM_DATA_VALUE})DataResponse ocr(RequestPart("file") MultipartFile multipartFile,RequestPart("fileType") Str…

数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储(20240508)

数据库管理185期 2024-05-08 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储&#xff08;20240508&#xff09;1 上期示例说明2 两个参数2.1 NEST/UNNEST2.2 CHECK/NOCHECK 3 一数多用3.1 以用户维度输出订单信息3.2 以产品维度3.3 以产品种类维度 4 美化输出总结 数…

TypeScript — 泛型

前言&#xff1a; 只是一篇学习笔记&#xff01;&#xff01;&#xff01; 正文&#xff1a; 泛型&#xff1a;指在定义函数、接口或类的时候&#xff0c;不预先指定具体类型&#xff0c;而在使用的时候再指定类型。 //泛型函数 //需求&#xff1a;创建一个方法使返回值的类…

Qt自动形成父子关系的函数

在Qt中&#xff0c;父子关系对于对象的内存管理至关重要。当一个QObject派生的对象拥有一个父对象时&#xff0c;它会在父对象被销毁时自动被销毁。这种机制简化了内存管理&#xff0c;并防止了内存泄漏。以下是一些在Qt中常见的会自动形成父子关系的情况&#xff1a; 1. 构造函…

【LeetCode:LCR 077. 排序链表 + 链表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【HEC】HECRAS中的降雨边界

目录 说明HEC-RAS网格降雨模型与HEC-HMS的比较HECRAS 降雨边界2DArea降雨边界添加降水边界条件调整2D Flow Area特性添加入渗网格数据创建土地覆盖层创建土壤层创建入渗层指定几何图形关联具有空间变化的网格降水数据Point点数据Gridded网格化数据Constant恒定值蒸散和风数据

2024最新版JavaScript逆向爬虫教程-------基础篇之JavaScript混淆原理

目录 一、常量的混淆原理1.1 对象属性的两种访问方式1.2 十六进制字符串1.3 Unicode字符串1.4 字符串的ASCII码混淆1.5 字符串常量加密1.6 数值常量加密 二、增加 JS 逆向者的工作量2.1 数组混淆2.2 数组乱序2.3 花指令2.4 jsfuck 三、代码执行流程的防护原理3.1 流程平坦化3.2…