MyBatis-Plus 3.x 文档手册:https://www.bookstack.cn/read/mybatis-plus-3.x/bdd3a209a7eabb35.md
一、注解
1、@TableName 表名注解
当你的mapper 集成了 mybatis plus 的BaseMapper时 这个注解让你的实体与表名建立对应关系
2、@TableId 主键注解
IdType:
3、@TableField 非主键字段注解
value : 指定数据库表对应字段名称(注意:这个别名只有在使用mybatis-plug自动的sql才行,自己在xml里写的这种方式无效)
exist :数据库表中是否存在字段名,默认为true, 为false时,plus会忽略该字段
4、@Version 乐观锁注解、标记 在字段上
5、@EnumValue 通枚举类注解(注解在枚举字段上)
二、BaseMapper CRUD接口
1、insert 返回操作成功的记录数量
/**
* 插入一条记录
*
* @param entity 实体对象
*/
int insert(T entity);
2、deleteById 返回操作成功的记录数量
/**
* 根据 ID 删除
*
* @param id 主键ID
*/
int deleteById(Serializable id);
3、deleteByMap
/**
* 根据 columnMap 条件,删除记录
*
* @param columnMap 表字段 map 对象
*/
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
使用例子
Map<String,Object> map = new HashMap<>();
map.put("user_id","用户id");//map key为表中字段
placeInfoMapper.deleteByMap(map);
4、delete
/**
* 根据 entity 条件,删除记录
*
* @param wrapper 实体对象封装操作类(可以为 null)
*/
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
使用例子
QueryWrapper<PlaceInfo> wrapper = new QueryWrapper();
wrapper.eq("user_id","1");
placeInfoMapper.delete(wrapper);
6、deleteBatchIds 传入List
/**
* 删除(根据ID 批量删除)
*
* @param idList 主键ID列表(不能为 null 以及 empty)
*/
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
7、updateById 为null 的字段不会更新,“”空字符会更新
/**
* 根据 ID 修改
*
* @param entity 实体对象
*/
int updateById(@Param(Constants.ENTITY) T entity);
添加配置 可以将字段更新为null
global-config:
banner: false
db-config:
update-strategy: ignored
使用例子
PlaceInfo entity = new PlaceInfo();
entity.setId("36ede941c8db0c0a874ca1a3787da800");
entity.setUserId("用户修改updateById22");
placeInfoMapper.updateById(entity);
//执行sql 日志
Preparing: UPDATE place_info SET user_id=? WHERE id=?
Parameters: 用户修改updateById22(String), 36ede941c8db0c0a874ca1a3787da800(String)
8、update 为null 的字段不会更新,“”空字符会更新
/**
* 根据 whereEntity 条件,更新记录
*
* @param entity 实体对象 (set 条件值,可以为 null)
* @param updateWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)
*/
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
使用例子
QueryWrapper<PlaceInfo> queryWrapper = new QueryWrapper<>();
PlaceInfo entity2 = new PlaceInfo();
entity2.setUserId("update修改2");
queryWrapper.eq("id","6660bb30766ca6678bd43f6360f70cdb");
placeInfoMapper.update(entity2,queryWrapper);
//执行sql 日志
Preparing: UPDATE place_info SET user_id=? WHERE id = ?
Parameters: update修改2(String), 6660bb30766ca6678bd43f6360f70cdb(String)
9、查询相关的方法类似 再代码中引入MyBatis-Plus 后下载源码查看BaseMapper 接口中的方法
三、条件构造器