版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Honnyee/article/details/88813105
一、MyBatis之java.lang.UnsupportedOperationException异常解决方案
原因就在于resultType代表的是List中的元素类型,而不应该是List本身,究其原因就在于被dao中的方法声明
切记:resultType返回的是集合中的元素类型,而不是集合本身
二、mybatis模糊查询出现“索引 1 超出范围”
在mapper文件中,把入参的 #{xxx},换成${xxx}
三、Mybatis异常There is no getter for property named 'XXX' in 'class java.lang.String'
1.当入参为 string类型时 (包括java.lang.String.)
我们使用#{xxx}引入参数.会抛异常There is no getter for property named 'XXX' in 'class java.lang.String'
2.解决方法一:把#{xxx}修改为 #{_parameter} 即可
3.解决方法二:可以在方法中提前定义:
public int methodName(@Param(value="state") String state ){
..
}
4.原因:Mybatis默认采用OGNL解析参数,所以会自动采用对象树的形式取 string.xxx 值,如果没在在方法中定义,则会抛异常报错。
四、分页查询的写法
根据输入的key 查询
mapper文件里面的写法:
<select id="searchFile" resultType="com.alibaba.fastjson.JSONObject">
select top ${pageSize}
<include refid="Base_Column_List"/>
from lyg_file
where name like '%${key}%'
and type = 'file'
AND id not in (SELECT top ${begin} id from lyg_file where parentId = #{parentId,jdbcType=INTEGER}
AND type = 'file' ORDER BY createTime DESC)
ORDER BY createTime DESC;
</select>