MybatisPlus分页和乐观锁用法

缘起

日前,我正在使用mybatis,在此处记录一下高级用法,以便后续查阅,会持续更新

分页和乐观锁

分页

需要在配置文件中加下面的配置,如果不加下面的配置而直接使用selectPage方法,那么也有分页效果,但是这是内存分页,而不是真正的mysql使用LIMIT的分页,在数据量大的时候会内存溢出,故此种方式不可取。

<bean id="sessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="plugins">
            <array>
                
                <bean id="paginationInterceptor" class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"/>
                
                <bean id="optimisticLockerInterceptor"
                      class="com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor"/>
                
                <bean id="performanceInterceptor" class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor"/>
            array>
        property>
    bean>

乐观锁

要使用乐观锁除了上面的配置外还需要在使用到乐观锁的表里加上version字段,可以设置默认值为 1(方便一点)。
对应的实体里 加上 version属性,注意version 属性上一定要加上mybatis-plus的 @Version注解,否则的话不会生效.

@Version
private Integer version;

验证

UserEntity userEntity = userServiceI.selectById(1);
userEntity.setId(1);
userEntity.setName("upd");
userServiceI.updateById(userEntity);

生成的SQL

UPDATE T_USER SET userName=?, `password`=?, `name`=?, version=? WHERE id=? and version=?

官方教程:https://mp.baomidou.com/guide/optimistic-locker-plugin.html#%E4%B8%BB%E8%A6%81%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF

你可能感兴趣的:(Mybatis)