MyBatis中如何避免因@Param注解参数类型错误导致的异常问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计488个文字,预计阅读时间需要2分钟。
在使用MyBatis时,遇到了一个奇怪的问题。我使用了一个参数 `@param(threshold)`,其类型为Java的 `double`。但奇怪的是,直接传递参数时,我遇到了参数转换错误,提示 `int` 无法转换为 `double`。我很好奇,问题出在哪里?
问题现象
今天使用mybatis遇到个很奇怪的问题,我使用一个参数@param("threshold"),类型是java的double,但是很奇怪,一直告诉我参数转换错误,int不能转double,我就奇怪了,哪里来的int。
解决办法
我感觉可能使用用到了mybatis的关键字,所以就把threshold换了个名字,果然好了。
问题原因
某些关键词,mybatis会认为是某种类型,下面列出来一些,后面发现再补充。
size, threshold, modCount是int类型
loadFactor是float类型
补充:mybatis使用@Param的坑
在mybatis中@Param注解的作用是为参数指定一个名称,在mapper文件中使用,而不是使用mybatis的arguments[0,1…]代替。但是在非动态的mapper——mybatis根据mapper接口创建实现类,@param注解是不起作用的。
本文共计488个文字,预计阅读时间需要2分钟。
在使用MyBatis时,遇到了一个奇怪的问题。我使用了一个参数 `@param(threshold)`,其类型为Java的 `double`。但奇怪的是,直接传递参数时,我遇到了参数转换错误,提示 `int` 无法转换为 `double`。我很好奇,问题出在哪里?
问题现象
今天使用mybatis遇到个很奇怪的问题,我使用一个参数@param("threshold"),类型是java的double,但是很奇怪,一直告诉我参数转换错误,int不能转double,我就奇怪了,哪里来的int。
解决办法
我感觉可能使用用到了mybatis的关键字,所以就把threshold换了个名字,果然好了。
问题原因
某些关键词,mybatis会认为是某种类型,下面列出来一些,后面发现再补充。
size, threshold, modCount是int类型
loadFactor是float类型
补充:mybatis使用@Param的坑
在mybatis中@Param注解的作用是为参数指定一个名称,在mapper文件中使用,而不是使用mybatis的arguments[0,1…]代替。但是在非动态的mapper——mybatis根据mapper接口创建实现类,@param注解是不起作用的。

