Mybatis 字符串传参异常解析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 字符串传参异常解析相关的知识,希望对你有一定的参考价值。

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

异常信息如下:
技术分享图片

技术分享图片

技术分享图片

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

技术分享图片

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

以上是关于Mybatis 字符串传参异常解析的主要内容,如果未能解决你的问题,请参考以下文章

mybatis防止sql注入

mybatis传参包含字符串和日期,parametertype写啥

MyBatis中使用#{}和${}的区别

MyBatis mapper文件中的变量引用方式#{}与${}的差别

Mybatis 中在传参时,${} 和#{} 的区别

mybatis中#和$区别