千家信息网

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

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了MyBatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在MyBatis 的映射
千家信息网最后更新 2026年11月04日MyBatis中的#{}和${}有什么区别

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

    前言

    在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中的#{}和${}有什么区别"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

    参数 变量 实例 引号 篇文章 动态 步骤 编译 单个 多个 建议 情形 是在 不用 价值 兴趣 前言 同时 名作 地方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 港股互联网科技股 智网互联网科技 互联网科技公司电话 北京互联网络科技有限公司 小马过河互联网科技 伴你行互联网科技有限公司 长亮科技互联网金融 富国互联网科技创新基金 广州优美互联网科技 阿里巴巴算科技企业还是互联网 承德科技产业互联网发展 宜昌元轩互联网科技有限公司 注册互联网科技公司经营范围大全 互联网科技的全部知识 佛山市拉法互联网科技有限公司 威龙国际互联网科技公司 广东工业互联网大赛深圳学泰科技 互联网科技创业计划的风险分析 每日互联网科技新闻 武汉亿视互联网科技有限公司 湖北九亚互联网络科技有限公司 互联网扶贫科技 期待互联网科技 北京互联网络科技有限公司 互联网科技博主是什么意思 承德科技产业互联网发展 洛阳共同富裕互联网科技有限公司 黑科技 体验场景 互联网大会 互联网科技创业计划的风险分析 前海云享互联网科技
    0