Mybatis学习-#和$
Mapper 映射文件
和$
在mybatis中,我们在Mapper引用变量时,默认使用的是#,
<insert id="addUser" parameterType="user">
insert into test01.user(username, address,favorite) values
(#{username},#{address},#{favorite,typeHandler=com.ethan.dao.ListVarcharHandler})
</insert>
也可以使用$来引用一个变量
#执行时的日志

使用了预编译的方式
$执行时的日志

SQL直接就拼接好了
总结:
在jdbc调用中,SQL的执行,既可以通过字符串拼接、也可以通过占位符来解决参数的传递问题。
在mybatis中,#相当于占位符,$相当于字符串拼接。
参数拼接存在SQL注入的风险,但是在有些情况下,需要通过参数注入,只能使用参数拼接。例如,排序查询,但是排序的字段不确定。
面试,常常问到这个。

浙公网安备 33010602011771号