MyBatisPlus 日常使用

1.maven引入 

<!--mybatis-plus-->

        <dependency>

            <groupId>com.baomidou</groupId>

            <artifactId>mybatis-plus-boot-starter</artifactId>

            <version>3.0.5</version>

        </dependency>

 

2.配置文件增加日志信息

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

3.实体和接口如:

@Data

public class User {

    private Long id;

    private String name;

    private Integer age;

    private String email;

}

@Repository

public interface UserMapper extends BaseMapper<User> {

}

注意:启动类需加扫描包

@SpringBootApplication

@MapperScan("com.atguigu.mybatisplus.mapper")

public class MybatisPlusApplication {

    public static void main(String[] args) {

        SpringApplication.run(MybatisPlusApplication.class,args);

    }

}

4.MP实现自动填充

如:默认字段

private Date createTime;

private Date updateTime;

2)添加注解

@TableField(fill = FieldFill.INSERT)

private Date createTime;

@TableField(fill = FieldFill.INSERT_UPDATE)

private Date updateTime;

 

增加扫描配置类

@Component

public class MyMetaObjectHandler  implements MetaObjectHandler {

    @Override

    public void insertFill(MetaObject metaObject) {

        this.setFieldValByName("createTime",new Date(),metaObject);

        this.setFieldValByName("updateTime",new Date(),metaObject);

    }

 

    @Override

    public void updateFill(MetaObject metaObject) {

        this.setFieldValByName("updateTime",new Date(),metaObject);

    }

}

测试一下

 

 

 

5、乐观锁

 所谓乐观锁,就是表字段中加入版本字段,每次修改时,带着版本字段做条件,修改成功后,版本号,会进行叠加。

1)增加字段

private Integer version;

2)添加注解实现自动填充

 

 

3)添加乐观锁注解

 

4)添加插件

@Configuration

@EnableTransactionManagement

@MapperScan("com.atguigu.mybatisplus.mapper")

public class MybatisPlusConfig {

    /**

     * 乐观锁插件

     */

    @Bean

    public OptimisticLockerInterceptor optimisticLockerInterceptor() {

        return new OptimisticLockerInterceptor();

    }

}

6、逻辑删除

  • 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据
  • 逻辑删除:假删除,将对应数据中代表是否被删除字段状态修改为被删除状态,之后在数据库中仍旧能看到此条数据记录

    (1)修改表添加字段

     

    private Integer deleted;

    2)添加注解、实现自动填充

     

    3)添加逻辑删除注解

     

     

     

    4)添加配置

    mybatis-plus.global-config.db-config.logic-delete-value=1

    mybatis-plus.global-config.db-config.logic-not-delete-value=0

    5)添加插件

    @Bean

    public ISqlInjector sqlInjector() {

        return new LogicSqlInjector();

    }

    6)测试

  • 删除

     

    查询

     

     

     

posted on   AnkangWenqiang  阅读(19)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示