Mybatis的$和#的区别

2023-11-06

1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id ='1'.
 2 $是将传入的数据直接显示生成sql语句,eg:select id,name,age from student where id =${id},当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id = 1.
 3 使用#可以很大程度上防止sql注入。(语句的拼接)
 4 但是如果使用在order by 中就需要使用 $.
 5 在大多数情况下还是经常使用#,但在不同情况下必须使用$. 
我觉得#与的区别最大在于:#{} 传入值时,sql解析时,参数是带引号的,而{}穿入值,sql解析时,参数是不带引号的。
一 : 理解mybatis中 $与#
    在mybatis中的$与#都是在sql中动态的传入参数。
    eg:select id,name,age from student where name=#{name}  这个name是动态的,可变的。当你传入什么样的值,就会根据你传入的值执行sql语句。
二:使用$与#
   #{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符 。
   ${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。
  name-->cy
 eg:  select id,name,age from student where name=#{name}   -- name='cy'
     select id,name,age from student where name=${name}    -- name=cy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mybatis的$和#的区别 的相关文章

  • 带有来自 Selenium 2 / WebDriver 的 Id 的 jQuery 元素选择器

    我可以在 Selenium 中获取元素的 ID RemoteWebElement webElement getId 它返回一个像这样的字符串 e9b6a1cc bb6f 4740 b9cb b83c1569d96d 我想知道这个ID的来源
  • Eclipse 自动完成更改变量名称

    只是一个愚蠢的问题 但很难搜索 因为有很多关于 Eclipse 自动完成的主题 而且很难找到与我的问题匹配的内容 所以问题是 如果我写 MyClass MyVarName 然后按空格键 添加 new MyClass Eclipse 自动添加
  • 我们如何测试我们的 Java UI?

    我们正在寻找记录和回放类型的测试工具来自动化我们的一些 UI 功能测试 我们已经研究了从 Silke 到 QTP 的大多数常见嫌疑 但没有一个起作用 当需要右键单击才能从右键单击菜单中选择某些内容时 或者当您必须在网格的下拉列表中选择一个值
  • 隐藏类的 System.out.print 调用

    我正在使用 java 库 jar 文件 该文件的作者放入了一堆System out print and System out printlns 有没有办法隐藏特定对象的这些消息 编辑 看起来jar文件似乎正在创建一堆线程 并且每个线程都有它
  • 适用于 Solaris 的 Java 8 中缺少 javaws

    看起来 Oracle 从 Java 8 for Solaris 中删除了 Java Web Start javaws 在 Java 8u51 中不再可用 来自兼容性指南 http www oracle com technetwork jav
  • 我需要显式关闭连接吗?

    我持有一个实例MongoClient and DB在我的应用程序中 每次我想执行某些操作时 我都会调用getCollection 我想知道是否需要显式关闭连接 就像connection close 在 JDBC 中 强调一下 我只有一个Mo
  • java.lang.UnsupportedOperationException:无法解析索引 13 处的属性:TypedValue{t=0x2/d=0x7f010046 a=-1}

    我在 android attrs xml 文件中添加了一个用于不同色调的属性 在 styles xml 文件中 我为这些属性指定了颜色 因此每种样式的它们都不同 Attrs xml
  • Java 套接字:可以从一个线程发送并在另一个线程上接收吗?

    这可能是一个非常基本的问题 但我很难找到答案 让一个线程写入 Socket 的输出流 而另一个线程从 Socket 的输入流读取数据 这样可以吗 编辑 这是一个与外部服务器通信的客户端应用程序 我并不是想让两个线程互相交谈 很抱歉含糊不清
  • Java中的OR运算(BitSet.class)

    如何编写一个程序 该程序需要001010101110000100100 011100010001000011000 000000000010000000000100 作为输入 位 输出将是OR其中 3 个 OR 0 0 0 0 1 1 1
  • 驱动程序信息:driver.version:未知,使用 ChromeDriver v78.0.3904.70 和 Chrome 浏览器 v78.0.3904.97

    我使用的是java 1 8和chrome浏览器版本78 0 3904 97 我正在尝试使用 chrome 驱动程序版本执行我的 selenium 脚本代码78 0 3904 70 但在执行时我面临以下问题并且 chrome 立即崩溃 Pic
  • java.lang.IllegalArgumentException:addChild:子名称“/”不唯一

    java lang IllegalArgumentException addChild 子名称 不唯一 通过在 tomcat webapps 文件夹中启用和禁用 saml 单点登录来替换现有 war 文件时遇到此问题 我正在使用 apach
  • 使用 Java 通过 HTTP 下载未知长度的文件

    我想用java下载一个HTTP查询 但是我下载的文件在下载时有一个未确定的长度 我认为这将是相当标准的 所以我搜索并找到了它的代码片段 http snipplr com view 33805 http snipplr com view 33
  • java 1.8下无法启动eclipse

    java 1 8 升级后我无法启动 eclipse 附上错误截图 这是我的 eclipse 配置设置 我该如何解决 startup plugins org eclipse equinox launcher 1 3 0 v20120522 1
  • 链表中的虚拟节点

    问 什么时候使用它们 作业问题 列表中的第一个和最后一个节点 有时用作列表中的第一个和最后一个节点 从未用作列表中的第一个和最后一个节点 维基百科说 哨兵节点是与链接一起使用的专门指定的节点 列表和树作为遍历路径终止符 哨兵节点的作用是 不
  • Storm Spout 未收到 Ack

    我已经开始使用storm 所以我使用创建简单的拓扑本教程 https github com nathanmarz storm wiki Tutorial 当我运行我的拓扑时LocalCluster一切看起来都很好 我的问题是我没有得到元组的
  • 将变量从 jenkins 传递到 testng.xml

    我想根据从詹金斯传递的变量运行测试用例 例如 选择您要运行的测试用例 测试用例一 测试用例二 在 pom xml maven 中
  • 如何修改生成的SOAP请求?

    我正处于创建输出拦截器并从 SOAP 消息中获取 OuputStream 的阶段 但是 如何在将 SOAP 信封发送到端点之前对其进行修改呢 我想删除一些 xml 元素 一种方法是获取文档并通过 XSLT 转换运行它 您可以通过调用来获取拦
  • Java 相当于 Python 的 urllib.urlencode(基于 HashMap 的 UrlEncode)

    From https stackoverflow com questions 2018026 should i use urllib or urllib2 2018103 2018103 Java 中 Python 的 urllib url
  • Drools:为什么是无状态会话?

    Drools 使用会话来存储运行时数据 为此 有两种会话 无状态和有状态 与无状态会话相比 有状态会话允许迭代调用 并且似乎比无状态会话具有所有优势 那么为什么会有无状态会话呢 他们服务的目的是什么 与有状态会话相比 它们的优势是什么 谢谢
  • 使用 Hibernate 防止无限循环数据检索

    我想知道 想象一个场景 例如 POJO public class User private String userName private String name private String surname private List

随机推荐

  • uni-app 2.2发布,大幅优化H5端性能体验

    背景 uni app发布以来 已经服务了几十万开发者 让我们意外 或者说惊喜的是 有大量开发者用uni app只编写H5版 并没有多端发布 可参考案例 这其实也符合uni app的初衷 uni app的定位并不是需要多端发布时才用uni a
  • uniapp上拉加载更多功能的简单实现

    https www cnblogs com huihuihero p 13206958 html
  • esp32-s2 wifi

    ESP32 S2 wifi 1 AP 无线接入点 网络的中心节点 无心路由器 这个路由器的特点是不能插入网络 没有接入Internet 只能等待其他设备的连接 只能智能接入 类似于点对点的连接 2 STA站点 每一个连接到无线网络的终端设备
  • 一个域名最多能对应几个IP地址?,一个IP地址可以绑定几个域名?

    一个域名最多能对应几个IP地址 一个IP地址可以绑定几个域名 谢谢 1 也就是说通常情况下一个域名同一时刻只能对应一个IP地址 但是在域名服务商那里 你可以把服务器群里面的多个提供相同服务的服务器IP设置一个域名可以轮询 但是同一时刻 一个
  • 微信小程序页面栈超出导致页面卡死

    微信小程序页面栈不能超出10个 超出10个之后无法进行点击选择跳转 解决方法 跳转的时候 判断之前页面栈里是否存在要跳转的页面 如果存在之前页面 就navigateBack返回之前页面 如果不存在之前页面 判断当前页面栈里是否到10个 如果
  • 软件和硬件数据交互接口的的演进

    编者按AMD Kria SOM及KV260视觉入门套件介绍 电子发烧友在线研讨会 软件和硬件 既相互依存又需要某种程度上的相互独立 通过软件和硬件之间的接口把两者连接在一起 软硬件接口 有很多含义 比如指令集是CPU软件和硬件之间的接口 比
  • PTA 4-1 计算分段函数[1]

    本题目要求计算下列分段函数f x 的值 输入格式 输入在一行中给出实数x 输出格式 在一行中按 f x result 的格式输出 其中x与result都保留一位小数 输入样例1 10 输出样例1 f 10 0 0 1 输入样例2 0 输出样
  • React import 配置路径别名‘@’,简化import Component的方式

    摘要 在react中 大多数业务逻辑都组件化 极大的减轻了代码的冗余度 如果组件的层次比较深的话 组件的import就比较费劲 在import时使用 components test 的方式 组件的import就会稍显混乱 组件代码不容易维护
  • 全国哀悼日,网站变黑白完美兼容IE,亲测有效

    首先在你的页面头部 里面加入如下代码 不加的话IE11就嗝屁了 然后在css文件里加入如下代码 body webkit filter grayscale 100 html webkit filter grayscale 100 moz fi
  • c++给出一个百分制成绩,输出等级‘A‘,‘B‘,‘C‘,‘D‘,‘E‘

    include
  • 利用Maven把项目生成jar包供其他项目使用

    每当搭建框架时 第一步就是为系统整理一个接一个的jar包 用多了就开始深思 如何把自己的项目也整成jar包 供他人使用呢 近期一直在看徐晓斌所著 Maven实战 因自己学识不够 只是简单理解了一些 但也受益颇深 下面介绍如何利用Maven把
  • 对区块链技术的一些新思考

    作者 朱金灿 来源 clever101的专栏 为什么大多数人学不会人工智能编程 gt gt gt 缘起 上周写了一篇 对区块链技术的一些思考 之后和一些朋友进行了交流 纠正了我之前的一些关于区块链的错误认识 重新认识区块链 在之前的文章中我
  • AngularJS的增删改查、state嵌套案例,不涉及服务端

    本篇实践一个案例 大致是 左边有导航菜单 右边显示列表 并可对列表项编辑或删除 也可添加新的列表项 借此 可体会到 如何组织可扩展的AngualrJS文件结构 如何点击左侧菜单项右侧显示相应内容 angular ui router的使用以及
  • zgrep查看前后几行日志

    zgrep C 10 a 关键字 error log 2021 09 02 tar gz C注意大写 标识前后10行的意思
  • 如何利用AJAX技术提高网站搜索引擎排名(4)

    四 使用XmlHttpRequest 如果你的用户主要使用Internet Explorer的较新版本或基于Gecko的浏览器 Mozilla Firefox Netscape 7 那么你可以决定使用XmlHttpRequest对象来把其它
  • 阴影LightMode = ShadowCaster

    阴影 实现原理 使用Shadow Map技术 把摄像机与光源位置重合 光源的阴影部分就是摄像机看不到的地方 前向渲染路径中 最重要的平行光如果开启了阴影 Unity就会为光源计算阴影映射纹理 shadowmap 本质就是深度图 记录光源出发
  • Android Studio出现:Your project path contains non-ASCII characters.

    公司设备需要自己开发安卓软件 我这就想自己研究下 开始想用IDEA 因为本身搞Java 后一番蒸腾没成功 在同事建议下装了Android Studio 4 X 一路跟着视频配置挺顺 没想到在创建项目上那里翻车了 如下图 自己没截图 用的别人
  • BitLocker自动解锁的密钥保存在哪里?

    当使用BitLocker加密Windows操作系统的系统分区时 可以选择让操作系统自动解锁系统盘 这通常需要将加密密钥保存在计算机上 以便系统能够自动解密系统盘并启动操作系统 在这种情况下 BitLocker会将密钥存储在计算机的TPM芯片
  • CUDA和C++混合编程及CMakeLists.txt

    1 概要 首先认识一个问题 单从CMakeLists txt的角度来看 无法同时使用两种编译器编译两种语言 不过直接编写Makefile是可以的 通过设置不同的任务 可以实现一个Makefile编译两个语言 但这不是这里要讨论的重点 使用C
  • Mybatis的$和#的区别

    1 是将传入的值当做字符串的形式 eg select id name age from student where id id 当前端把id值1 传入到后台的时候 就相当于 select id name age from student w