首页 > 其他分享 >#和 $ 在 MyBatis 中的区别

#和 $ 在 MyBatis 中的区别

时间:2024-05-29 22:25:05浏览次数:11  
标签:1.1 1.2 区别 转义 自动 SQL MyBatis

哈喽,大家好,我是木头左!

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在 MyBatis 中,#{} 和 ${} 都可以用来表示参数,但是它们之间有一些区别。本文将从以下几个方面介绍这两种符号的区别:

1. #{} 和 ${} 的用法

在 MyBatis 中,#{} 用于预编译的 SQL 语句中,而 ${} 则用于动态 SQL 语句中。

1.1 #{} 的用法

1.1.1 语法
<select id="selectUserById" parameterType="int" resultType="User">
    SELECT * FROM user WHERE id = #{id}
</select>
1.1.2 特点
  • {} 可以自动进行转义,避免了 SQL 注入攻击;

  • {} 可以自动将传入的参数转换为指定的数据类型。

1.2 ${} 的用法

1.2.1 语法
<select id="selectUserByName" parameterType="String" resultType="User">
    SELECT * FROM user WHERE name LIKE '%${name}%'
</select>
1.2.2 特点
  • ${} 不会被自动转义,需要手动进行转义;
  • ${} 不会自动将传入的参数转换为指定的数据类型。

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

标签:1.1,1.2,区别,转义,自动,SQL,MyBatis
From: https://www.cnblogs.com/bigleft/p/18221225

相关文章

  • 视频汇聚EasyCVR平台视图库GA/T 1400协议与GB/T 28181协议的区别
    在公安和公共安全领域,视频图像信息的应用日益广泛,尤其是在监控、安防和应急指挥等方面。为了实现视频信息的有效传输、接收和处理,GA/T1400和GB/T28181这两个协议被广泛应用。虽然两者都服务于视频信息处理的目的,但它们在实际应用、功能特性和适用范围上却存在显著的区别。今天我......
  • 【杂记-浅谈DDos攻击、浅析SYN Flood攻击、Dos及DDos攻击区别】
    一、DDosDistributedDenialofService分布式拒绝服务攻击什么是DDos攻击DDoS攻击是一种常见的网络攻击形,攻击者利用恶意程序对一个或多个目标发起攻击,企图通过大规模互联网流量耗尽攻击目标的网络资源,使目标系统无法进行网络连接、无法提供正常服务。DDoS攻击会给攻......
  • get和set,?和 ?? ,?: ,?. ?:[]的用法和区别
    C#中,get和set访问器通常与属性(property)一起使用,用于定义如何读取和写入属性的值。属性提供了一种比字段(field)更灵活的方式来封装类的数据成员。区别用途:get访问器:用于读取属性的值。set访问器:用于设置属性的值。返回值:get访问器必须返回一个值,其类型必须与属性的......
  • pip install . 和 pip install -e . 的区别
    pipinstall.和pipinstall-e.都用于将当前目录下的项目安装为Python包,但它们之间有一些区别。pipinstall.:这个命令会将项目打包并安装在Python环境中,项目的文件将被复制到Python的site-packages目录中。安装后,您可以在Python中导入该包并使用其中的功能。这种方式适......
  • MVVM模式的优点以及与MVC模式的区别?
    1.MVVM模式的优点:1、低耦合:视图(View)可以独⽴于Model变化和修改,⼀个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。2、可重⽤性:你可以把⼀些视图逻辑放在⼀个ViewModel⾥⾯,让很多......
  • 调幅收音机(AM)与调频收音机(FM)的区别
    收音机调频幅:收音机调频:总体:最上面是声波信号,当声音强度上升的,AM的幅度上升,FM的频率上升。反之减少。 ......
  • PIE与PIC的区别
    在`cc`编译器(通常指GNUCompilerCollection,GCC或其他兼容的C编译器)中,`-fno-PIE`和`-fno-pic`是两个与代码生成和位置无关性相关的编译选项。这两个选项的区别主要体现在它们控制代码的位置无关性(PositionIndependence)的方式和上下文中。1.**-fno-PIE(PositionIndependentEx......
  • find_sys_call_table和kallsysms_lookup_name的区别
    find_sys_call_table和kallsyms_lookup_name都可以用于查找内核符号,但它们的具体作用和使用场景有所不同。以下是两者的详细对比:1.find_sys_call_table作用find_sys_call_table是一种通过遍历内核内存或者其他方式来手动查找系统调用表地址的技术。这种方法通常在某些情况......
  • 协程 进程 线程的区别
    协程(Coroutine)、进程(Process)和线程(Thread)是三种并发编程的技术,它们在并发控制、资源使用和上下文切换方面有不同的特点和用途。以下是它们的主要区别:进程定义:进程是操作系统分配资源和调度的基本单位。每个进程拥有独立的地址空间、全局变量、堆和栈。资源开销:进程之间的切换......
  • springmvc和springboot有什么区别?
    springmvc和springboot有什么区别?SpringMVC和SpringBoot是两个与Java开发相关的框架/工具,它们在JavaWeb应用程序开发中有着不同的作用和优势。SpringMVC:定位:SpringMVC是一种基于Java的Web框架,用于构建Web应用程序的控制器层。功能:它提供了一个模型-......