iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatis中#{}和${}有哪些区别
  • 731
分享到

MyBatis中#{}和${}有哪些区别

2024-04-02 19:04:59 731人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言#{} 和 ${} 的区别#{} 和 ${} 的实例:假设传入参数为 1实例步骤一实例步骤二实例步骤三#{} 和 ${} 的大括号中的值#{} 和 ${} 在使用中的技巧和建

前言

mybatis 的映射配置文件中,动态传递参数有两种方式:

1、#{} 占位符

2、${} 拼接符

#{} 和 ${} 的区别

区别1

#{} 为参数占位符 ?,即sql 预编译

${} 为字符串替换,即 sql 拼接

区别2、

#{}:动态解析 -> 预编译 -> 执行

${}:动态解析 -> 编译 -> 执行

区别 3、

#{} 的变量替换是在DBMS 中

${} 的变量替换是在 DBMS 外

区别 4、

变量替换后,#{} 对应的变量自动加上单引号''

变量替换后,${} 对应的变量不会加上单引号 ''

区别 5、

#{} 能防止sql 注入

${} 不能防止sql 注入

#{} 和 ${} 的实例:假设传入参数为 1

实例步骤一


#{}:select * from t_user where uid=#{uid}

${}:select * from t_user where uid= '${uid}'

实例步骤二


#{}:select * from t_user where uid= ?

${}:select * from t_user where uid= '1'

实例步骤三


#{}:select * from t_user where uid= '1'

${}:select * from t_user where uid= '1'

#{} 和 ${} 的大括号中的值

单个参数的情形

#{}

在这里插入图片描述

${}

在这里插入图片描述
在这里插入图片描述

多个参数的情形 #{}

在这里插入图片描述
在这里插入图片描述

${}

在这里插入图片描述
在这里插入图片描述

#{} 和 ${} 在使用中的技巧和建议

1、不论是单个参数,还是多个参数,一律都建议使用注解@Param("")

2、 能用 #{} 的地方就用 #{},不用或少用${}

3、表名作参数时,必须用${}。如:select * from ${tableName}

4、order by 时,必须用 ${}。如:select * from t_user order by ${columnName}

5、表名处用#{}会直接报错;order by后面用#{}排序不生效

6、使用 ${} 时,要注意何时加或不加单引号,即${} 和 '${}'。一般字段类型为char或者varchar时需要加单引号

总结

到此这篇关于MyBatis中#{}和${}有哪些区别的文章就介绍到这了,更多相关MyBatis中#{}和${}区别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: MyBatis中#{}和${}有哪些区别

本文链接: https://www.lsjlt.com/news/159313.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis中#{}和${}有哪些区别
    目录前言#{} 和 ${} 的区别#{} 和 ${} 的实例:假设传入参数为 1实例步骤一实例步骤二实例步骤三#{} 和 ${} 的大括号中的值#{} 和 ${} 在使用中的技巧和建...
    99+
    2024-04-02
  • Hibernate和MyBatis有哪些区别
    这篇文章主要介绍“Hibernate和MyBatis有哪些区别”,在日常操作中,相信很多人在Hibernate和MyBatis有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • Mybatis中resultType和resultMap有哪些区别
    本文小编为大家详细介绍“Mybatis中resultType和resultMap有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis中resultType和resultMap有哪些区别”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-06-29
  • mybatis和hibernate有哪些区别
    这篇文章主要介绍mybatis和hibernate有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! mybatis是手写sql语句,存储过程,高级映射hibernate是自动生成sql语句支持存储过程和映射m...
    99+
    2023-06-03
  • mysql中:=和=有哪些区别
    这篇文章主要介绍了mysql中:=和=有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。:=和=的区别= 只有在set和update时...
    99+
    2024-04-02
  • MyBatis中的#{}和${}有什么区别
    这篇文章主要介绍了MyBatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在MyBatis 的映射配置文件中,动态传递参数有两种方式:#{...
    99+
    2023-06-21
  • js中==和===的区别有哪些
    这篇文章将为大家详细讲解有关js中==和===的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaScri...
    99+
    2023-06-15
  • Kotlin中?和!!的区别有哪些
    这篇文章给大家分享的是有关Kotlin中和!!的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在...
    99+
    2023-06-14
  • Numpy.array中[:]和[::]的区别有哪些
    小编给大家分享一下Numpy.array中[:]和[::]的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!array([:])>>>&...
    99+
    2023-06-15
  • Mybatis中#和$的区别
    在使用mybatis框架开发项目编写SQL语句的时候,经常需要用到变量替换值,那么用来替换变量值的操作经常用到$和#这两个符号,同样在一些Java面试中也经常被问到它们的区别。那么它们在使用上面有什么区别呢?下面根据使用情况分析总结,两者的...
    99+
    2023-09-02
    大数据 java mybatis mysql
  • Xamarin.Forms中ActivityIndicator和ProgressBar有哪些区别
    这篇文章给大家分享的是有关Xamarin.Forms中ActivityIndicator和ProgressBar有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Xamarin.Forms的Activity...
    99+
    2023-06-04
  • golang中&和*的区别有哪些
    本文将为大家详细介绍“golang中&和*的区别有哪些”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“golang中&和*的区别有哪些”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体...
    99+
    2023-06-06
  • js中dom和bom有哪些区别
    这篇文章给大家分享的是有关js中dom和bom有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript的特点1.JavaScript主要用来向HTML页面添加交互行为。2.JavaScript...
    99+
    2023-06-14
  • es6中find和filter有哪些区别
    这篇“es6中find和filter有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2024-04-02
  • linux中at和crontab有哪些区别
    这篇“linux中at和crontab有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中at和cronta...
    99+
    2023-07-02
  • linux中fork和exec有哪些区别
    这篇文章主要介绍“linux中fork和exec有哪些区别”,在日常操作中,相信很多人在linux中fork和exec有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中fork和exec有哪...
    99+
    2023-06-30
  • mysql中or和and有哪些区别
    这篇文章将为大家详细讲解有关mysql中or和and有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 区别:1、本身含义上有差异,or...
    99+
    2024-04-02
  • mysql中5.6和5.5有哪些区别
    本篇内容介绍了“mysql中5.6和5.5有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • html中id和class有哪些区别
    这篇文章主要为大家展示了“html中id和class有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html中id和class有哪些区别”这篇文章吧。 ...
    99+
    2024-04-02
  • js中Node和Element有哪些区别
    这篇文章主要介绍了js中Node和Element有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。准备工作在正式开始介绍 Node 和...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作