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 2022-08-22 09:13  AnkangWenqiang  阅读(18)  评论(0编辑  收藏  举报

导航