校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 项目框架 > Mybatis使用
题目

关于Mybatis中#{}与${}使用的区别,以下说法不正确的是()

A.#{}的使用主要是为了避免SQL注入

B.#{}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号

C.一般情况下,优先使用#{}

D.排序时使用order by 动态参数时,此时也只能使用#{}

解答

正确答案是 D

在mybatis中动态 sql 是其主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在执行操作之前 mybatis 会对其进行动态解析。

mybatis 提供了两种支持动态 sql 的语法
#{} 以及 $ {},其最大的区别则是#{}方式能够很大程度防止sql注入(安全),${}方式无法防止Sql注入。

Sql注入指的是程序解析时会将你传入的参数作为原来SQL语句的一部分,打乱原来SQL的结构

D选项的错误在于如果需要在查询语句中 动态指定表名,就只能使用${}

C 0条回复 评论

帖子还没人回复快来抢沙发