Mybatis-plus zhi

1. 注解使用

        mybatis-plus提供了 ·@TableName·, @TableId, @TableField, @TableLogic 四种注解,其含义分别为:

         @TableName("SPF_Require_Vehicle")    用于声明当前class所对应数据库中的表,如果class的名字和表的名字完全相同,则不需要添加该注解,如果不一样,则需要用该注解进行声明。

        @TableId(value = "SPF_UID", type = IdType.AUTO)     用于声明主键, value指定数据库中主键的名称,type为主键的生成类型,支持 Assign(雪花算法,java字段需要是Long)、Auto(数据库字段需要声明为auto_increment), uuid

        @TableField("SPF_Name")  用于声明当前字段对应的表中的字段

        @TableLogic(value = "0", delval = "1")   用于软删除,value是默认值,delval表示软删除后的值。

@TableName("SPF_Require_Vehicle")
@Data
public class Employee {
    /**
     * 指定主键名称为SPF_uid, 类型为自增,即数据库的字段必须是auto_increment
     */
    @TableId(value = "SPF_UID", type = IdType.AUTO)
    private Long id;

    /**
     * 指定数据库中对应的字段是 Part_PartSap
     */
    @TableField("Part_PartSap")
    private String partSap;

    @TableField("Part_PlateSap")
    private String plateSap;

    @TableField("SPF_Name")
    private String name;

    /**
     * 逻辑删除
     */
    @TableLogic(value = "0", delval = "1")
    @TableField("IsActvie")
    private Boolean active;
}

2. IService使用

2.1 批量插入

boolean saveBatch(Collection entityList, int batchSize);
@Test
    public void baseBatchInsertTest() {
        List list = new ArrayList<>();
        for (int i = 20; i < 30; i++) {
            Employee employee = new Employee();
            employee.setName("zhagnsan" + i);
            employee.setPartSap("123425-" + i);
            employee.setPlateSap("312342-" + i);
            list.add(employee);
        }
        // 批量插入,service提供了两个函数,可以带第二个参数,也可以不带,不带的情况下默认是1000
        // 批量插入实际也是一条一条的插入,不同的是底层启动了同一个session,插入完成后关闭,不需要每次都开启关闭
        this.service.saveBatch(list, 10);
    }

2.2 批量修改插入

        如果主键Id已经在表中存在则修改,如果不存在则插入一条新数据

@Test
    public void testBatchInsertOrUpdate() {
        List list = new ArrayList<>();
        Employee e1 = new Employee();
        // 1L已经存在,会指定update
        e1.setId(1L);
        // 只添加了一个字段,也就是只修改一个字段
        e1.setName("车轱辘");
        Employee e2 = new Employee();
        // id在表中不存在,则新增
        e2.setId(50L);
        e2.setName("车顶");
        e2.setPartSap("123142314-00");
        e2.setPlateSap("423414-09");
        list.add(e1);
        list.add(e2);
        this.service.saveOrUpdateBatch(list,2);
    }

你可能感兴趣的:(mybatis)