Mybatis映射文件中占位符#{}使用注意事项

#{}占位符可以用来设置参数

  1. 如果传进来的是基本类型,那么#{}里面的变量名可以随意写
  2. 如果传进来的是pojo类型,那么#{}中的变量名必须是pojo的属性名,且大小写严格

比如我在一次运行中没有注意到,pojo中的属性名全是小写,而我在映射文件的sql语句中引入了pojo类型,但其中有一个占位符中的参数写成了大写

image

于是就有了如下报错

image

主要是:org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'DOB' in 'class top.roud.pojo.Student'

大概意思是在引入的pojo类型的代码中没有名为DOB这个属性的get()方法,因为这个属性本来就不存在,存在的是dob这个属性,所以会报错,由此可见大小写规范的重要性

解决方案:规范代码书写,将占位符中的变量名书写与pojo类中对应属性名一致即可

posted @ 2021-10-19 22:08  热心邻居老王  阅读(159)  评论(0编辑  收藏  举报