Mybatis Plusの改ページと楽観ロックの使い方

7079 ワード

縁起
先日、私は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の@Verssion注を必ず加えてください.そうでないと有効になりません.
@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