MyBatis中的$和#,你知道他们的区别吗?

2023-10-27

转自:

MyBatis中的$和#,你知道他们的区别吗?

下文笔者将讲述MyBatis中的$和#的区别简介说明,如下所示:

在MyBatis的xml配置文件中
   我们经常看见$和#后面紧跟变量,那么他们有什么区别呢?
下文笔者将一一道来,如下所示:

1.#{ }是预编译处理
 MyBatis在处理#{ }时,它会将sql中的#{ }替换为?
然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号 
2.#{} MyBatis在处理时,直接采用字符串替换的方式

注意事项:
   使用${ }会导致sql注入
   不利于系统的安全性

例:

<select id="selectPostList" parameterType="SysPost" resultMap="SysPostResult">
	    <include refid="selectPostVo"/>
		<where>
			<if test="postCode != null and postCode != ''">
				AND post_code like concat('%', #{postCode}, '%')
			</if>
			<if test="status != null and status != ''">
				AND status = #{status}
			</if>
			<if test="postName != null and postName != ''">
				AND post_name like concat('%', #{postName}, '%')
			</if>
		</where>
	</select>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis中的$和#,你知道他们的区别吗? 的相关文章

  • 基于 Postman 接口自动化场景设计

    一个强大的工具 基于 Postman 接口自动化场景设计 使用Xmind或者Yaml 设计 postman 自动化场景 引言 postman是一个比较轻量级的接口测试工具 在单个接口的测试表现优秀 在批量测试接口方面则提供了Runner C

随机推荐

  • ajax数据类型json,Ajax请求不与数据类型“jsonp”或“JSON”

    我想使用JSON作为Ajax请求 使用jQuery 的返回类型 但我的代码总是导致错误 我试过改变json和jsonp之间的MIME类型 但无济于事 Ajax请求不与数据类型 jsonp 或 JSON 我也不确定是否正确格式化数据 部分 我
  • 如何让HTTPS站点评级达到A+? 还得看这篇HTTPS安全优化配置最佳实践指南

    文章目录 0x00 前言简述 SSL TLS 简单说明 SSL TLS 相关术语一览 0x01 HTTPS安全实践指南 1 证书 certificate 与私钥 Private key 2 中间件SSL TLS服务器配置 3 SSL TLS
  • [news] Lion: The Complete Macworld Review

    the complete version is from http www macworld com article 161026 2011 07 osx lion review html In a decade Mac OS X evol
  • js常用数组操作方法

    1 concat 用于连接两个或多个数组 该方法不会改变现有的数组 仅会返回被连接数组的一个副本 2 join 用于把数组中的所有元素放入一个字符串 元素是通过指定的分隔符进行分隔的 默认使用 号分割 不改变原数组 3 push 可向数组的
  • 【QT开发笔记-基础篇】

    本节对应的视频讲解 B 站 链 接 QT开发笔记 基础篇 第二章 常用控件 2 12 表格控件 QTableWidget 1 QTableWidget 是 Qt 中的表格控件 可以行列的形式来展示数据 1 属性和方法 QTableWidge
  • 白话操作系统1.1 - CPU - virtualization - 虚拟

    1 桃子之影分身 three easy pieces操作系统一书中 教授谈起了分桃子的事情 说实际只有一个桃子 但却要分给很多猴子 那么问题来了 如何让每个猴子都能开开心心的分到桃呢 其实就是用一些手段啊 捏造出虚拟的桃子 虚拟的东西嘛 可
  • ECharts的讲解

    目录 什么是数据可视化 ECharts的介绍 ECharts的特点 ECharts的基本使用 操作步骤 通用配置title的相关配置 通用配置tooltip的相关配置 触发类型 trigger 触发时机 triggerOn 格式化 form
  • python 概率分布_Python中的联合概率分布

    要通过numpy中的m矩阵生成 可以将两个适当形状的数组相乘 如果数组x是1的n 而数组y是 则它们的乘积x y将是n 由m 在 下面是一个例子 说明如何用最初是一维的数据来处理这个问题 我使用随机值 如果是概率分布的话 应该对其进行规范化
  • 用Hexo制作自己的静态博客

    博客是一个老东西了 如果我们想写博客的话 有两种选择 第一种是在博客网站上 例如QQ空间 新浪博客 简书等网站上申请账号 然后编写博客 第二种就是自己找服务器搭一个博客 搭建博客也有两种选择 第一种是搭建动态博客 这方面最流行的就是Word
  • C++之五种排序方法总结

    模板函数sort sort是一个模板函数 sort 括号里可以接受两个或三个参数 这里先说一下两个参数的 因为三个参数的还没研究好 哈哈 使用sort 时需要添加头文件
  • 修改mysql的字符集和默认存储引擎

    author skate time 2012 05 18 修改mysql的字符集和默认存储引擎 1 修改mysql的字符集 mysql库现有字符集 mysql gt show variables like character Variabl
  • 多表的 inner join与left join;

    当前情况 目前有三个表 关系如下 1 sc表 有 student id class id 2 student表 有student id student name 3 class表 有class id class name class add
  • vue3+vite+ts项目配置开发环境和生产环境 打包命令配置

    开发环境和生产环境的配置和打包方式有所不同 下面是基于vue3 vite ts项目的开发环境和生产环境配置及打包方式的详细说明 开发环境配置 开发环境的配置主要是为了方便开发者进行调试和测试 以下是开发环境的配置步骤 1 1 安装依赖 首先
  • 51单片机“独立按键”控制静态数码管———显示数字0-9

    51单片机 独立按键 控制静态数码管学习总结 一 按键功能实现总结 独立按键 电路图解析及接线 二 程序编译与控制静态数码管显示1 2 0 9 的效果展示 三 按键程序逻辑设计与程序编译 四 程序烧录与保存 一 按键功能实现总结 独立按键
  • python 绘制两组数据的分布图

    可以使用 Python 中的 Matplotlib 库来绘制两组数据的分布图 下面是一个简单的示例代码 import matplotlib pyplot as plt 假设有两组数据 分别是 x 和 y x 1 2 3 4 5 y 2 4
  • JAVA用线程池模拟查询大批量数据

    JAVA用线程池模拟查询大批量数据 文章目录 JAVA用线程池模拟查询大批量数据 1 前言背景 1 1 线程 1 2 进程与线程的区别总结 1 3 使用多线程的好处 2 多线程的实现 2 1 操作流程 3 测试 1 前言背景 1 1 线程
  • QListWidget右键菜单

    关于QListWidget右菜单的的实现 网上多数资料都没有提到如何使用Qt Creator快速实现 如参考资料 1 2 本文重点介绍此方法 1 槽函数生成 通过Qt Creator的UI设计器将QListWidget控件拖放到主界面中 然
  • 刷题之77. 组合

    题目 给定两个整数 n 和 k 返回范围 1 n 中所有可能的 k 个数的组合 你可以按 任何顺序 返回答案 示例 1 输入 n 4 k 2 输出 2 4 3 4 2 3 1 2 1 3 1 4 来源 力扣 LeetCode 链接 http
  • Pytorch实现Seq2Seq

    前言 Seq2Seq模型用来处理nlp中序列到序列的问题 是一种常见的Encoder Decoder模型架构 基于RNN同时解决了RNN的一些弊端 输入和输入必须是等长的 Seq2Seq的模型架构可以参考Seq2Seq详解 也可以读论文原文
  • MyBatis中的$和#,你知道他们的区别吗?

    转自 MyBatis中的 和 你知道他们的区别吗 下文笔者将讲述MyBatis中的 和 的区别简介说明 如下所示 在MyBatis的xml配置文件中 我们经常看见 和 后面紧跟变量 那么他们有什么区别呢 下文笔者将一一道来 如下所示 1 是