mybatis问题记录

异常信息:java.lang.InstantiationException: tk.mybatis.mapper.provider.MapperProvider

mybatis-config.xml中<plugins>节点中加入通用mapper插件和分页插件

<plugins>

    <!--通用mapper-->
    <plugin interceptor="tk.mybatis.mapper.mapperhelper.MapperInterceptor">
        <!--主键自增回写方法,默认值MYSQL,详细说明请看文档HSQLDB-->
        <property name="IDENTITY" value="MYSQL"/>
        <!--可选参数一共3个,对应0,1,2,分别为SequenceName,ColumnName,PropertyName-->
        <property name="seqFormat" value="{0}.nextval"/>
        <!--通用Mapper接口,多个通用接口用逗号隔开-->
        <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
    </plugin>
    <!-- 分页插件 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor"/>

</plugins>

上面的是错误的,也是导致出现这种异常的原因。插件的配置应该在通用mapper前面

<plugins>
     <!-- 自定义分页插件 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor"/> 
    <!--通用mapper-->
    <plugin interceptor="tk.mybatis.mapper.mapperhelper.MapperInterceptor">
        <!--主键自增回写方法,默认值MYSQL,详细说明请看文档HSQLDB-->
        <property name="IDENTITY" value="MYSQL"/>
        <!--可选参数一共3个,对应0,1,2,分别为SequenceName,ColumnName,PropertyName-->
        <property name="seqFormat" value="{0}.nextval"/>
        <!--通用Mapper接口,多个通用接口用逗号隔开-->
        <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
    </plugin>
    
</plugins>

 这是由于mapper中

MapperInterceptor在做拦截的时候会将MappedStatement的执行对象替换为MapperProvider对象,MapperProvider是通用Mapper自己定义的,在原有的基础上进行封装增强,为我们封装了一些常用的CRUD操作,所以我们一般只需要继承通用Mapper的接口就可以实现大部分逻辑。但是它的实例化必须依赖带参数的构造函数
而pageHelper中并没有这个类,所以报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值