iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MyBatis中的#{}和${}有什么区别
  • 785
分享到

MyBatis中的#{}和${}有什么区别

2023-06-21 23:06:58 785人浏览 泡泡鱼
摘要

这篇文章主要介绍了mybatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在MyBatis 的映射配置文件中,动态传递参数有两种方式:#{

这篇文章主要介绍了mybatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    前言

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

    #{} 占位符

    ${} 拼接符

    #{} 和 ${} 的区别

    区别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'

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

    单个参数的情形

    #{}

    MyBatis中的#{}和${}有什么区别

    ${}

    MyBatis中的#{}和${}有什么区别
    MyBatis中的#{}和${}有什么区别

    多个参数的情形 #{}

    MyBatis中的#{}和${}有什么区别
    MyBatis中的#{}和${}有什么区别

    ${}

    MyBatis中的#{}和${}有什么区别
    MyBatis中的#{}和${}有什么区别

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

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

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

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

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

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

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

    感谢你能够认真阅读完这篇文章,希望小编分享的“MyBatis中的#{}和${}有什么区别”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

    --结束END--

    本文标题: MyBatis中的#{}和${}有什么区别

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

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

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

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

    下载Word文档
    猜你喜欢
    • MyBatis中的#{}和${}有什么区别
      这篇文章主要介绍了MyBatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在MyBatis 的映射配置文件中,动态传递参数有两种方式:#{...
      99+
      2023-06-21
    • Mybatis中#和$的区别是什么
      这篇文章主要介绍“Mybatis中#和$的区别是什么”,在日常操作中,相信很多人在Mybatis中#和$的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis中#和$的区别是什么”的疑惑有所...
      99+
      2023-06-22
    • MyBatis中#{}和${}有哪些区别
      目录前言#{} 和 ${} 的区别#{} 和 ${} 的实例:假设传入参数为 1实例步骤一实例步骤二实例步骤三#{} 和 ${} 的大括号中的值#{} 和 ${} 在使用中的技巧和建...
      99+
      2022-11-12
    • Mybatis中#和$的区别
      在使用mybatis框架开发项目编写SQL语句的时候,经常需要用到变量替换值,那么用来替换变量值的操作经常用到$和#这两个符号,同样在一些Java面试中也经常被问到它们的区别。那么它们在使用上面有什么区别呢?下面根据使用情况分析总结,两者的...
      99+
      2023-09-02
      大数据 java mybatis mysql
    • Hibernate和MyBatis的区别是什么
      这篇文章给大家分享的是有关Hibernate和MyBatis的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hibernate 和 MyBatis 的区别相同点都是对j...
      99+
      2022-10-19
    • mybatis中的#和$的区别
      #相当于对数据 加上 双引号,$相当于直接显示数据  #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "11...
      99+
      2023-06-02
    • MyBatis ofType和javaType的区别是什么
      这篇文章主要介绍了MyBatis ofType和javaType的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MyBatis ofType和javaType的区别是什么文章都会有...
      99+
      2023-06-29
    • Mybatis——#{}和${}的区别
      在使用mybatis的时候我们会使用到#{}和${}这两个符号来为sql语句传参数,那么这两者有什么区别呢? #{}是预编译处理,是占位符,${}是字符串替换,是拼接符 Mybatis在处理#{}...
      99+
      2023-09-13
      mybatis java mysql
    • Mybatis中resultType和resultMap有哪些区别
      本文小编为大家详细介绍“Mybatis中resultType和resultMap有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis中resultType和resultMap有哪些区别”文章能帮助大家解决疑惑,下面跟着小...
      99+
      2023-06-29
    • Hibernate和MyBatis有哪些区别
      这篇文章主要介绍“Hibernate和MyBatis有哪些区别”,在日常操作中,相信很多人在Hibernate和MyBatis有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
      99+
      2022-10-18
    • mybatis和hibernate有哪些区别
      这篇文章主要介绍mybatis和hibernate有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! mybatis是手写sql语句,存储过程,高级映射hibernate是自动生成sql语句支持存储过程和映射m...
      99+
      2023-06-03
    • mybatis中#{}和${}的区别详解
      目录一、MyBatis中${}和#{}的区别1.1 ${}和#{}演示1.2 SQL注入问题1.3 ${}和#{}的区别1.4 #{}底层是如何防止SQL注入的?1.4.1 网上的答...
      99+
      2022-11-13
    • 【mybatis和mybatisplus的区别】
      MyBatis 和 MyBatis Plus 都是 Java 语言的持久层框架,但它们之间有以下几个区别: 功能特性: MyBatis 是一个基于 XML 配置文件和 SQL 语句的 ORM 框架,提...
      99+
      2023-09-07
      mybatis java
    • Mybatis与Hibernate的区别是什么
      Mybatis与Hibernate的区别是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. hibernate是全自动,而mybatis是半自动hibernate完全可以...
      99+
      2023-05-30
      mybatis hibernate
    • hibernate与mybatis的区别是什么
      这期内容当中小编将会给大家带来有关hibernate与mybatis的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Hibernate 是当前最流行的O/R mapping框架,它出身...
      99+
      2023-05-31
      hibernate mybatis 别是
    • mybatis一级缓存和二级缓存有什么区别
      MyBatis的一级缓存和二级缓存是两种不同级别的缓存机制。一级缓存是在同一个SqlSession内部的缓存,它默认是开启的。在执行...
      99+
      2023-08-20
      mybatis
    • Mybatis开发要点-resultType和resultMap有什么区别详解
      目录一、resultType1、resultType介绍2、映射规则3、自动映射注意事项4、代码演示1、t_user_test.sql准备2、实体类3、Mapper接口类4、Mapp...
      99+
      2022-11-13
    • mybatis 中 #与$ 的区别?
      #表示的是使用了预编译,可以防止sql注入。而$则不是。使用#将传入的参数默认为字符串。而$则不会,传入的是什么就是什么。$一般用于传入数据库对象,例如表名。如果传入的是Date类型,则要用#。ps:在使用...
      99+
      2022-10-18
    • java中 ${} 和 #{} 有什么区别
      目录前言1.功能不同1.1 ${} 的问题2.使用场景不同3.安全性不同3.1 使用 ${} 实现用户登录3.2 使用 #{} 实现用户登录总结前言 ${} 和 #{} 都...
      99+
      2022-11-13
    • mysql插入mybatis时和oracle的区别是什么
      本篇内容介绍了“mysql插入mybatis时和oracle的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
      99+
      2022-10-19
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作