mybatis #{}和${}区别
区别1
- #{}:相当于JDBC Sql语句中的占位符?(PreparedStatement),可以防止Sql注入
- ${}:相当于JDBC Sql语句中的连接符号+(Statement),不能防止Sql注入
区别2
- #{}:进行输入映射的时候,会对参数进行类型解析(如果是String类型,那么Sql语句会自动加上‘ ‘)
- ${}:进行输入映射的时候,将参数原样输出到SQL语句中 -->相当于replace替换相应位置的值
注:模糊搜索时,注意使用的是${},如果使用的是#{},会在两头加上‘‘,此时sql语句变成:select * from user where username like ‘%‘张三‘%‘;这样不就报错了嘛
区别3
- #{}:如果进行简单类型(String、Date、8种基本类型的包装类)的输入映射时,#{}中参数名称可以任意
- ${}:如果进行简单类型(String、Date、8种基本类型的包装类)的输入映射时,#{}中参数名称必须是value
相关推荐
xiuyangsong 2020-11-16
Nishinoshou 2020-11-09
jimgreatly 2020-09-01
dongxurr 2020-08-18
Dullonjiang 2020-08-15
Dullonjiang 2020-08-11
Dullonjiang 2020-08-09
dongxurr 2020-08-08
yunzhonmghe 2020-08-07
jimgreatly 2020-08-03
Dullonjiang 2020-07-30
jimgreatly 2020-07-27
liqiancao 2020-07-26
xiuyangsong 2020-07-26
dongxurr 2020-07-26
mcvsyy 2020-07-26
helloxusir 2020-07-25
牧场SZShepherd 2020-07-20