浅谈mybatis中的#和$的区别

 更新时间:2016年06月23日 10:47:23   投稿:jingxian  
下面小编就为大家带来一篇浅谈mybatis中的#和$的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".   

2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id.   

3. #方式能够很大程度防止sql注入。  

4.$方式无法防止Sql注入。

5.$方式一般用于传入数据库对象,例如传入表名.   

6.一般能用#的就别用$.

MyBatis排序时使用order by 动态参数时需要注意,用$而不是#

字符串替换

默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,有时你只是想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用: ORDER BY ${columnName}

这里MyBatis不会修改或转义字符串。

重要:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。这会导致潜在的SQL注入攻击,因此你不应该允许用户输入这些字段,或者通常自行转义并检查。

以上就是小编为大家带来的浅谈mybatis中的#和$的区别全部内容了,希望大家多多支持脚本之家~

相关文章

  • 详解Java中的时区类TimeZone的用法

    详解Java中的时区类TimeZone的用法

    TimeZone可以用来获取或者规定时区,也可以用来计算时差,这里我们就来详解Java中的时区类TimeZone的用法,特别要注意下面所提到的TimeZone相关的时间校准问题.
    2016-06-06
  • java简单实现八叉树图像处理代码示例

    java简单实现八叉树图像处理代码示例

    这篇文章主要介绍了java简单实现八叉树图像处理代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java快速排序及求数组中第k小的值解析

    Java快速排序及求数组中第k小的值解析

    这篇文章主要介绍了Java快速排序及求数组中第k小的值解析,选一个中间值,把数组中比它小的元素放到左边,比它大的元素放到右边,这时形成三个子数组,分别是中间值,比它大的数和比它小的数,然后对前后两个数组进行递归,需要的朋友可以参考下
    2023-11-11
  • Java语言中Swing组件编程详解

    Java语言中Swing组件编程详解

    这篇文章主要为大家介绍了Java语言中Swing组件编程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Java设计模式七大原则之单一职责原则详解

    Java设计模式七大原则之单一职责原则详解

    单一职责原则(Single Responsibility Principle, SRP),有且仅有一个原因引起类的变更。简单来说,就是针对一个java类,它应该只负责一项职责。本文将详细介绍一下Java设计模式七大原则之一的单一职责原则,需要的可以参考一下
    2022-02-02
  • java必学必会之GUI编程

    java必学必会之GUI编程

    这篇文章主要为大家详细介绍了java GUI编程,对于GUI编程小编也不是很了解,通过这篇文章和大家一起学习GUI编程,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Java SpringBoot整合JSP和MyBatis

    Java SpringBoot整合JSP和MyBatis

    这篇文章主要介绍了SpringBoot如何整合JSP和MyBatis以及SpringBoot的基本设置,感兴趣的小伙伴可以参考阅读
    2023-03-03
  • 一篇文章带你深入了解Java对象与Java类

    一篇文章带你深入了解Java对象与Java类

    这篇文章主要给大家介绍了关于java中类和对象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • 使用javafx更新UI的方法

    使用javafx更新UI的方法

    这篇文章主要介绍了使用javafx更新UI的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java中判断字段真实长度的实例(中文2个字符,英文1个字符)

    java中判断字段真实长度的实例(中文2个字符,英文1个字符)

    下面小编就为大家带来一篇java中判断字段真实长度的实例(中文2个字符,英文1个字符)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论