MybatisPlus学习(四)---DML编程控制

id生成策略

MybatisPlus学习(四)---DML编程控制_第1张图片
MybatisPlus学习(四)---DML编程控制_第2张图片
MybatisPlus学习(四)---DML编程控制_第3张图片

public class Book {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String type;
    private String name;
    private String description;
}

全局设置

可以在application.yml配置文件中对mybatisplus做全局配置

1.type-prefix:tb_ 表示为实体类的自动映射名加上tb_前缀
如User实体类如果不写@TableName(“表名”)注解的话,mybatisplus会在数据库中自动查找表名为user的表

2.id-type: auto 表示为配置id生成策略

MybatisPlus学习(四)---DML编程控制_第4张图片

多记录操作

deleteBatchIds()和selectBatchIds()方法可以进行多记录操作,两个方法中都需要传入一个集合对象

		//根据主键删除多条记录
        List list=new ArrayList<>();
        list.add(100000000L);
        list.add(100000001L);
        list.add(100000002L);
        bookDao.deleteBatchIds(list);
         //根据主键查询多条记录
        List list=new ArrayList<>();
        list.add(1L);
        list.add(2L);
        list.add(3L);
        bookDao.selectBatchIds(list);

逻辑删除

数据不做真正的删除,通过添加字段的方式来表示数据的删除状态,如果添加的字段值为0,则表示数据没删除,如果为1,则表示数据已经删除

1.数据库表中添加字段deleted

MybatisPlus学习(四)---DML编程控制_第5张图片

2.创建实体类属性,最好和数据库中名称一致

在这里插入图片描述

3.测试结果

删除id为1的数据
MybatisPlus学习(四)---DML编程控制_第6张图片

4.原理

实际上对数据库执行的是update操作
在这里插入图片描述
在查询全部数据的时候,不会查询到deleted为1的数据,因为在执行sql语句的时候会自动加上deleted=0条件;

5.可以通过mybatisplus全局配置来设置逻辑删除

MybatisPlus学习(四)---DML编程控制_第7张图片

乐观锁

为了解决并发问题,mybatisplus提供了乐观锁机制
MybatisPlus学习(四)---DML编程控制_第8张图片
MybatisPlus学习(四)---DML编程控制_第9张图片
MybatisPlus学习(四)---DML编程控制_第10张图片
MybatisPlus学习(四)---DML编程控制_第11张图片

你可能感兴趣的:(Java学习,学习,数据库,mybatis)