Mybatis执行Update返回行数为负数

获取mybatis的update行数,总是返回负数。后来在官网上找到原因,是由于defaultExecutorType的引起的,defaultExecutorType有三个执行器SIMPLE、REUSE和BATCH。其中BATCH可以批量更新操作缓存SQL以提高性能,但是有个缺陷就是无法获取update、delete返回的行数。defaultExecutorType的默认执行器是SIMPLE。

名称 描述
SIMPLE 执行器执行其它语句
REUSE 可能重复使用prepared statements 语句
BATCH 可以重复执行语句和批量更新



由于项目配置中启用了BATCH执行器,UPDATE和DELETE返回的行数就丢失了,把执行器改为SIMPLE即可。

 

<configuration>
    <settings>
        
        <setting name="cacheEnabled" value="true" />
        
        <setting name="lazyLoadingEnabled" value="true" />
        
        <setting name="aggressiveLazyLoading" value="false" />
        
        <setting name="multipleResultSetsEnabled" value="true" />
        
        <setting name="useColumnLabel" value="true" />
        
        <setting name="useGeneratedKeys" value="true" />
        
        <setting name="autoMappingBehavior" value="FULL" />
        
        
        
        
        <setting name="defaultStatementTimeout" value="25000" />
        
        
    settings>

    
    <plugins>
        
        <plugin interceptor="com.rvho.mybatis.interceptor.MybatisPageInterceptor">
            <property name="databaseType" value="mysql"/>
        plugin>
    plugins>
configuration>

你可能感兴趣的:(Java)