MyBatis-关于${}和#{}的区别

1.#{}

#{} 是预编译处理,在mybatis处理#{}的时候,会将sql语句中的#{}替换成?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值的两边加上单引号 '   '   

2.${}

${}是字符串的替换,在MyBatis处理时,会将${ }替换成变量值,传入的值两边不会加'   '

使用MyBatis${}会产生的问题安全性:

           ${}会导致sql注入,不利于系统的安全!

            sql注入:把Sql语句通过表单或域名地址作为查询语句,恶意欺骗服务器执行该SQL语句,从而产生                              Sql注入的安全性问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。