MyBatis-Plus 的配置异常的简单
package com.example.mybatispluseasydemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.example.mybatispluseasydemo")
public class MybatisPlusEasydemoApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusEasydemoApplication.class, args);
}
SpringBoot通过注解的形式来配置MapperScan,比较简洁方便。
@TableName:对数据表名注解
@TableId:表主键标识
@TableId(value = "id", type = IdType.AUTO):自增
@TableId(value = "id", type = IdType.ID_WORKER_STR):分布式全局唯一ID字符串类型
@TableId(value = "id", type = IdType.INPUT):自行输入
@TableId(value = "id", type = IdType.ID_WORKER):分布式全局唯一ID 长整型类型
@TableId(value = "id", type = IdType.UUID):32位UUID字符串
@TableId(value = "id", type = IdType.NONE):无状态
@TableField:表字段标识
@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。
@TableField(exist = true):表示该属性为数据库表字段。
@TableField(condition = SqlCondition.LIKE):表示该属性可以模糊搜索。
@TableField(fill = FieldFill.INSERT):注解填充字段 ,生成器策略部分也可以配置!
@FieldStrategy:
@FieldFill
@Version:乐观锁注解、标记
@EnumValue:通枚举类注解
@TableLogic:表字段逻辑处理注解(逻辑删除)
@SqlParser:租户注解
@KeySequence:序列主键策略
CRUD
1. 通过CRUD封装了BaseMapper的接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器,Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能。
2. 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键。
3. 对象 Wrapper 为 条件构造器。
/**
*
* 插入一条记录
*
*
* @param entity 实体对象
* @return int
*/
Integer insert(T entity);
/**
*
* 根据 ID 删除
*
*
* @param id 主键ID
* @return int
*/
Integer deleteById(Serializable id);
/**
*
* 根据 columnMap 条件,删除记录
*
*
* @param columnMap 表字段 map 对象
* @return int
*/
Integer deleteByMap(@Param("cm") Map columnMap);
/**
*
* 根据 whereEntity 条件,更新记录
*
*
* @param entity 实体对象
* @param wrapper 实体对象封装操作类(可以为 null)
* @return
*/
Integer update(@Param("et") T entity, @Param("ew") Wrapper wrapper);
/**
*
* 根据 ID 修改
*
*
* @param entity 实体对象
* @return int
*/
Integer updateById(@Param("et") T entity);
/**
*
* 根据 entity 条件,查询一条记录
*
*
* @param entity 实体对象
* @return T
*/
T selectOne(@Param("ew") T entity);
/**
*
* 查询(根据ID 批量查询)
*
*
* @param idList 主键ID列表
* @return List
*/
List selectBatchIds(@Param("coll") Collection extends Serializable> idList);
/**
*
* TableId 注解存在更新记录,否插入一条记录
*
*
* @param entity 实体对象
*/
boolean saveOrUpdate(T entity);
/**
*
* 根据 ID 查询
*
*
* @param id 主键ID
*/
T getById(Serializable id);
/**
*
* 查询(根据ID 批量查询)
*
*
* @param idList 主键ID列表
*/
Collection listByIds(Collection extends Serializable> idList);
/**
*
* 查询(根据 columnMap 条件)
*
*
* @param columnMap 表字段 map 对象
*/
Collection listByMap(Map columnMap);