mybatis中的#和$的区别?
1、在xml文件中书写如下代码,有$和#。
<select id="findById" resultType="Dept" parameterType="long">
SELECT deptno,dname,loc FROM ${deptno} WHERE deptno=#{deptno}
</select>

2、执行单元测试。
There is no getter for property named 'deptno' in 'class java.lang.Long'

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

4、$一般被用于传递表名, $将传入的数据直接显示生成在sql中
<select id="findById" resultType="Dept" parameterType="long"> SELECT deptno,dname,loc FROM ${deptTable} WHERE deptno= #{deptno} ;</select>

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

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

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