mybatis中的#和$的区别?

2025-11-21 13:04:57

1、在xml文件中书写如下代码,有$和#。

<select id="findById" resultType="Dept" parameterType="long">

   SELECT deptno,dname,loc FROM ${deptno} WHERE deptno=#{deptno}

</select>

mybatis中的#和$的区别?

2、执行单元测试。

There is no getter for property named 'deptno' in 'class java.lang.Long'

mybatis中的#和$的区别?

3、说明 ${deptno}被解析成带有引号的'deptno'.

mybatis中的#和$的区别?

4、$一般被用于传递表名, $将传入的数据直接显示生成在sql中

<select id="findById" resultType="Dept" parameterType="long">              SELECT deptno,dname,loc FROM ${deptTable} WHERE deptno=               #{deptno} ;</select>

mybatis中的#和$的区别?

5、#{}会把传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。

mybatis中的#和$的区别?

6、#{}方式能够很大程度防止sql注入,${}方式无法防止Sql注入。

mybatis中的#和$的区别?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢