1. mybatis中sql语句的占位符与parameterType
#{} 与 parameterType
表示一个占位符,向占位符输入参数,mybatis自动进行java类型和jdbc类型的转换,程序员不需要考虑参数的类型。比如传入字符串,mybatis会自动将参数两边加单引号拼接到sql语句当中
如果#{}中传入简单类型的参数,例:parameterType="int",#{}中的变量名称随意
如果#{}接收pojo数据类型的参数,例:parameterType="cn03.mybatis.pojo.User",那么#{}会解析pojo的属性值,此时#{}中的变量名必须吻合pojo的属性变量名称,可以理解为传址操作
${} 与 parameterType
完成sql的拼接,通过${}接收参数,将参数的内容不加任何修饰拼接在sql中。所以它无法防止sql注入
如果${}中传入简单类型的参数,例:parameterType="int",${}中的变量名称随意
如果${}接收pojo数据类型的参数,例:parameterType="cn03.mybatis.pojo.User",那么${}会解析pojo的属性值,此时${}中的变量名必须吻合pojo的属性变量名称,可以理解为传址操作