mybatis的一些用法和常见问题的处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 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>

猜你喜欢

转载自blog.csdn.net/Honnyee/article/details/88813105
今日推荐