mybatis plus

@TableName
  • 描述:表名注解
 
属性
类型
必须指定
默认值
描述
Value
String
“"
表名
Schema
String
“"
Schema
keepGlobalPrefix
Boolean
false
是否保持使用全局的 tablePrefix 的值(如果设置了全局 tablePrefix 且自行设置了 value 的值)
resultMap
String
“"
xml中resultMap的id
autoResultMap
Boolean
false
是否自动构建 resultMap 并使用(如果设置 resultMap 则不会进行 resultMap 的自动构建并注入)
excludeProperty
String[ ]
{ }
需要排除的属性名(@since 3.3.1)
关于`autoResultMap`的说明:
mp会自动构建一个ResultMap并注入到mybatis里(一般用不上).下面讲两句: 因为mp底层是mybatis,所以一些mybatis的常识你要知道,mp只是帮你注入了常用crud到mybatis里 注入之前可以说是动态的(根据你entity的字段以及注解变化而变化),但是注入之后是静态的(等于你写在xml的东西) 而对于直接指定typeHandler,mybatis只支持你写在2个地方:
1. 定义在resultMap里,只作用于select查询的返回结果封装
2. 定义在insert和updatesql的#{property}里的property后面(例:#{property,typehandler=xxx.xxx.xxx}),只作用于设置值 而除了这两种直接指定typeHandler,mybatis有一个全局的扫描你自己的typeHandler包的配置,这是根据你的property的类型去找typeHandler并使用.
@Tableld
  • 描述:主键注解
 
属性
类型
必须指定
默认值
描述
Value
String
“"
主键字段名
Type
Enum
IdType.NONE
主键类型
IdType
 
描述
AUTO
数据库ID自增
NONE
无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
INPUT
insert前自行set主键值
ASSIGN_ID
分配ID(主键类型为Number(Long和Integer)或String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)
ASSIGN_UUID
分配UUID,主键类型为String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默认default方法)
ID_WORKER
分布式全局唯一ID 长整型类型(please use ASSIGN_ID)
UUID
32位UUID字符串(please use ASSIGN_UUID)
ID_WORKER_STR
分布式全局唯一ID 字符串类型(please use ASSIGN_ID)
@TableField
  • 描述:字段注解(非主键)
 
属性
类型
必须指定
默认值
描述
value
String
""
数据库字段名
el
String
""
映射为原生 #{ ... } 逻辑,相当于写在 xml 里的 #{ ... } 部分
exist
Boolean
True
是否为数据库表字段
Condition
String
""
字段 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s}, 参考
Update
String
""
字段 update set 部分注入, 例如:update="%s+1":表示更新时会set version=version+1(该属性优先级高于 el 属性)
insertStrategy
Enum
N
DEFAULT
举例:NOT_NULL: insert into table_a(<if test="columnProperty != null">column</if>) values (<if test="columnProperty != null">#{columnProperty}</if>)
updateStrategy
Enum
N
DEFAULT
举例:IGNORED: update table_a set column=#{columnProperty}
whereStrategy
Enum
N
DEFAULT
举例:NOT_EMPTY: where <if test="columnProperty != null and columnProperty!=''">column=#{columnProperty}</if>
fill
Enum
FieldFill.DEFAULT
字段自动填充策略
select
Boolean
true
是否进行 select 查询
keepGlobalFormat
Boolean
false
是否保持使用全局的 format 进行处理
jdbcType
jdbcType
JdbcType.UNDEFINED
JDBC类型 (该默认值不代表会按照该值生效)
typeHandler
Class<? extends TypeHandler>
UnknownTypeHandler.class
类型处理器 (该默认值不代表会按照该值生效)
numericScale
String
""
指定小数点后保留的位数
关于`jdbcType`和`typeHandler`以及`numericScale`的说明:
numericScale只生效于 update 的sql. jdbcType和typeHandler如果不配合@TableName#autoResultMap = true一起使用,也只生效于 update 的sql. 对于typeHandler如果你的字段类型和set进去的类型为equals关系,则只需要让你的typeHandler让Mybatis加载到即可,不需要使用注解
FieldStrategy
 
描述
IGNORED
忽略判断
NOT_NULL
非NULL判断
NOT_EMPTY
非空判断(只对字符串类型字段,其他类型字段依然为非NULL判断)
DEFAULT
追随全局配置
FieldFill
 
描述
DEFAULT
默认不处理
INSERT
插入时填充字段
UPDATE
更新时填充字段
INSERT_UPDATE
插入和更新时填充字段
@Version
 
  • 描述:乐观锁注解、标记@Version在字段上
@EnumValue
  • 描述:通枚举类注解(注解在枚举字段上)
@TableLogic
  • 描述:表字段逻辑处理注解(逻辑删除)
 
属性
类型
必须指定
默认值
描述
Value
String
“"
逻辑未删除值
Delval
String
“"
逻辑删除值
@SqlParser
see @InterceptorIgnore
@KeySequence
  • 描述:序列主键策略oracle
  • 属性:value、resultMap
 
属性
类型
必须指定
默认值
描述
value
String
“"
序列名
clazz
Class
Long.class
id的类型, 可以指定String.class,这样返回的Sequence值是字符串"1"
@InterceptorIgnore
see插件主体
@OrderBy
  • 描述:内置SQl默认指定排序,优先低于wrapper条件查询
 
属性
类型
必须指定
默认值
描述
isDesc
boolean
是否倒序查询
sort
sort
Short.MAX_VALUE
数字越小越靠前
Service CRUD接口
 
说明:
* 通用 Service CRUD 封装IService
* (opens new window)接口,进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆,
* 泛型 T 为任意实体对象
* 建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类
* 对象 Wrapper 为 条件构造器
Save
// 插入一条记录(选择字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);
// 插入(批量)
boolean saveBatch(Collection<T> entityList, int batchSize);
 
参数说明
 
类型
参数名
描述
T
entity
实体对象
Collection<T>
entityList
实体对象集合
int
batchSize
插入批次数量
SaveOrUpdate
// TableId 注解存在更新记录,否插入一条记录
boolean saveOrUpdate(T entity);
// 根据updateWrapper尝试更新,否继续执行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);
 
参数说明
 
类型
参数名
描述
T
entity
实体对象
Wrapper<T>
updateWrapper
实体对象封装操作类 UpdateWrapper
Collection<T>
entityList
实体对象集合
int
batchSize
插入批次数量
Remove
// 根据 entity 条件,删除记录
boolean remove(Wrapper<T> queryWrapper);
// 根据 ID 删除
boolean removeById(Serializable id);
// 根据 columnMap 条件,删除记录
boolean removeByMap(Map<String, Object> columnMap);
// 删除(根据ID 批量删除)
boolean removeByIds(Collection<? extends Serializable> idList);
 
参数说明
 
类型
参数名
描述
Wrapper<T>
queryWrapper
实体包装类 QueryWrapper
Serializable
id
主键ID
Map<String, Object>
columnMap
表字段 map 对象
Collection<? extends Serializable>
idList
主键ID列表
Update
// 根据 UpdateWrapper 条件,更新记录 需要设置sqlset
boolean update(Wrapper<T> updateWrapper);
// 根据 whereWrapper 条件,更新记录
boolean update(T updateEntity, Wrapper<T> whereWrapper);
// 根据 ID 选择修改
boolean updateById(T entity);
// 根据ID 批量更新
boolean updateBatchById(Collection<T> entityList);
// 根据ID 批量更新
boolean updateBatchById(Collection<T> entityList, int batchSize);
 
参数说明
 
类型
参数名
描述
Wrapper<T>
updateWrapper
实体对象封装操作类 UpdateWrapper
T
entity
实体对象
Collection<T>
entityList
实体对象集合
int
batchSize
更新批次数量
Get
// 根据 ID 查询
T getById(Serializable id);
// 根据 Wrapper,查询一条记录。结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")
T getOne(Wrapper<T> queryWrapper);
// 根据 Wrapper,查询一条记录
T getOne(Wrapper<T> queryWrapper, boolean throwEx);
// 根据 Wrapper,查询一条记录
Map<String, Object> getMap(Wrapper<T> queryWrapper);
// 根据 Wrapper,查询一条记录
<V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);
 
参数说明
 
类型
参数名
描述
Serializable
id
主键ID
Wrapper<T>
queryWrapper
实体对象封装操作类 QueryWrapper
boolean
throwEx
有多个 result 是否抛出异常
T
entity
实体对象
Function<? super Object, V>
mapper
转换函数
List
// 查询所有
List<T> list();
// 查询列表
List<T> list(Wrapper<T> queryWrapper);
// 查询(根据ID 批量查询)
Collection<T> listByIds(Collection<? extends Serializable> idList);
// 查询(根据 columnMap 条件)
Collection<T> listByMap(Map<String, Object> columnMap);
// 查询所有列表
List<Map<String, Object>> listMaps();
// 查询列表
List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);
// 查询全部记录
List<Object> listObjs();
// 查询全部记录
<V> List<V> listObjs(Function<? super Object, V> mapper);
// 根据 Wrapper 条件,查询全部记录
List<Object> listObjs(Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录
<V> List<V> listObjs(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);
参数说明
 
类型
参数名
描述
Wrapper<T>
queryWrapper
实体对象封装操作类 QueryWrapper
Collection<? extends Serializable>
idList
主键ID列表
Map<?String, Object>
columnMap
表字段 map 对象
Function<? super Object, V>
mapper
转换函数
Page
// 无条件分页查询
IPage<T> page(IPage<T> page);
// 条件分页查询
IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);
// 无条件分页查询
IPage<Map<String, Object>> pageMaps(IPage<T> page);
// 条件分页查询
IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);
 
参数说明
 
类型
参数名
描述
IPage<T>
page
翻页对象
Wrapper<T>
queryWrapper
实体对象封装操作类 QueryWrapper
Count
// 查询总记录数
int count();
// 根据 Wrapper 条件,查询总记录数
int count(Wrapper<T> queryWrapper);
 
参数说明
 
类型
参数名
描述
Wrapper<T>
queryWrapper
实体对象封装操作类 QueryWrapper
Chain
query
// 链式查询 普通
QueryChainWrapper<T> query();
// 链式查询 lambda 式。注意:不支持 Kotlin
LambdaQueryChainWrapper<T> lambdaQuery();
 
 
// 示例:
query().eq("column", value).one();
lambdaQuery().eq(Entity::getId, value).list();
 
Update
// 链式更改 普通
UpdateChainWrapper<T> update();
// 链式更改 lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();
 
 
// 示例:
update().eq("column", value).remove();
lambdaUpdate().eq(Entity::getId, value).update(entity);

Mapper CRUD 接口

说明:
* 通用 CRUD 封装BaseMapper
* (opens new window)接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器
* 泛型 T 为任意实体对象
* 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键
* 对象 Wrapper 为 条件构造器
 
Insert
// 插入一条记录
int insert(T entity);
 
参数说明
 
类型
参数名
描述
T
entity
实体对象
Delete
// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
 
参数说明
 
类型
参数名
描述
Wrapper<T>
wrapper
实体对象封装操作类(可以为 null)
Collection<? extends Serializable>
idList
主键ID列表(不能为 null 以及 empty)
Serializable
id
主键ID
Map<String, Object>
columnMap
表字段 map 对象
Update
// 根据 whereWrapper 条件,更新记录
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
 
参数说明
 
类型
参数名
描述
T
entity
实体对象 (set 条件值,可为 null)
Wrapper<T>
updateWrapper
实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)
select
// 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
 
// 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
 
// 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
参数说明
 
类型
参数名
描述
Serializable
id
主键ID
Wrapper<T>
queryWrapper
实体对象封装操作类(可以为 null)
Collection<? extends Serializable>
idList
主键ID列表(不能为 null 以及 empty)
Map<String, Object>
columnMap
表字段 map 对象
IPage<T>
page
分页查询条件(可以为 RowBounds.DEFAULT)
mapper层选装件
说明:
选装件位于 com.baomidou.mybatisplus.extension.injector.methods 包下 需要配合Sql 注入器使用,案例
(opens new window)
使用详细见源码注释
(opens new window)
 

AlwaysUpdateSomeColumnById

int alwaysUpdateSomeColumnById(T entity);
 
int insertBatchSomeColumn(List<T> entityList);
 
 
int deleteByIdWithFill(T entity);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值