Mybatis 字符串传参异常解析

Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'XXX' in 'class java.lang.String'  解析

异常信息如下:
QQ截图20180531161749.png

QQ截图20180531172346.png

QQ截图20180531161544.png

1.在DAO层,CardMapper.java接口里面 入参加上 @Param("XXX")

QQ截图20180531172315.png

2.在cardMapper.xml中 <if test="provCode != null"> 修改为 <if test="_parameter!= null"> ,<if></if>判断里面 AND tc.provCode = #{provCode} 不变;

如果没有<if test=””></if> , 就改为 AND tc.provCode = #{_parameter}

3.Mybatis默认采用ONGL解析参数,所以会自动采用对象树的形式取 string.xxx 值,如果没在在方法中定义,则会抛异常报错。

关于参数是否参与过滤的写法:
1)、if test中的参数名称不需要加${};
2)、${}和#{}的区别
      #{}是占位符,比${}更安全
      如果是in查询,一定需要用${},注意构造参数的格式如单引号


参考文献:https://blog.csdn.net/qing_gee/article/details/47122227

猜你喜欢

转载自blog.51cto.com/825272560/2122545