码迷,mamicode.com
首页 > 移动开发 > 详细

关于Mybatis的mapper文件中${}和#{}的区别和注意事项

时间:2019-03-06 10:45:55      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:condition   名称   文件的   出现   注入   HERE   注意事项   区别   模糊   

#{}占位符 可以有效防止sql注入,使用时不需要关注参数的类型,mybatis会自动进行java类型和jdbc类型的转换;#{}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,#{}括号中可以是value或者其他名称。

${}和#{}不同,通过${}可以将parameterType传入的内容拼接在sql中且不进行jdbc类型转换,${}可以接收简单类型值或者pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value,如果使用别的名称则会出现 org.apache.ibatis.reflection.ReflectionException:There is no getter for…… 的错误,这时有两种解决方式,1、将mapper文件中${}括号的值改为value,2、在dao文件的参数前增加注解 @Param("名称"),如  public int getPageCount(@Param("condition") String condition);使用${}不能防止sql注入,但经常用于模糊查询中如like‘%${value}%‘

关于Mybatis的mapper文件中${}和#{}的区别和注意事项

标签:condition   名称   文件的   出现   注入   HERE   注意事项   区别   模糊   

原文地址:https://www.cnblogs.com/h-wt/p/10481640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!