MyBatis-Plus学习笔记-核心功能(二:CRUD接口-Mapper CRUD 接口)

官方CRUD接口链接https://mp.baomidou.com/guide/crud-interface.html#chain

相关说明:

 1.通用CRUD封装BaseMapper接口。
 
 2.泛型 T 为任意实体对象,如User,Student。
 
 3.参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键。
 
 4.对象 Wrapper 为 条件构造器,条件构造器主要有:AbstractWrapper(父类),#QueryWrapper,UpdateWrapper,Wrapper。

 5.为了避免混淆,MapperCRUD接口命名和ServiceCRUD接口命名有所不同,主要为Insert,Delete,Update,Select,

一、Insert

// 插入一条记录
//T代表实体类,比如自定义的User类
int insert(T entity);

demo示例

	//添加,根据你的实体类自定义
	User user=new User("trikey","123456");
	userMapper.insert(user);

二、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);

demo示例

	// 根据 entity 条件,删除记录
	QueryWrapper<User> queryWrapper=new QueryWrapper<User>();
    queryWrapper.isNotNull("username");
    userMapper.delete(queryWrapper); //根据实体类条件,删除记录
	// 根据 ID 删除
    userMapper.deleteById(3);
    // 删除(根据ID 批量删除)
	List<Integer> idlist=new ArrayList<Integer>();
    idlist.add(4);
    idlist.add(3);
    idlist.add(5);
    userMapper.deleteBatchIds(idlist);
    //根据 columnMap 条件,删除记录
    //key:存放数据库字段名,value:存放字段在值
    Map<String,Object> c=new HashMap<>();
    c.put("username","trikey1");
    c.put("username","trikey2");
    c.put("username","trikey3");
    System.out.println(c.size());
    userMapper.deleteByMap(c);

三、Update

// 根据 whereWrapper 条件,更新记录
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

demo示例

	// 根据 ID 修改
	userMapper.updateById(user1);
    QueryWrapper<User> queryWrapper=new QueryWrapper<User>();
    // 根据 whereWrapper 条件,更新记录
    queryWrapper.isNotNull("username");
    User user9=new User("trikey888","123456");
    userMapper.update(user9,queryWrapper); //根据 whereWrapper 条件,更新记录,条件为null的话就相当于没有条件,等于所有记录都更改

四、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);

demo示例

	// 根据 ID 查询
	user1 = userMapper.selectById(3);
	// 根据 Wrapper 条件,查询总记录数
    Integer integer = userMapper.selectCount(null);
    // 查询(根据ID 批量查询)
    List<User> userList1 = userMapper.selectBatchIds(idlist);
    // 根据 Wrapper 条件,查询全部记录
    List<Map<String, Object>> maps = userMapper.selectMaps(null);
    // 根据 entity 条件,查询全部记录
    List<User> userList=userMapper.selectList(null);
    //打印
    Assert.assertEquals(5, userList.size());
    userList.forEach(System.out::println);
    QueryWrapper<User> queryWrapper=new QueryWrapper<>();
    queryWrapper.eq("username","trikey88");
    // 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
    List<Object> objects = userMapper.selectObjs(queryWrapper);
    objects.forEach(System.out::println);
    // 根据 entity 条件,查询全部记录(并翻页)
	Page<User> page = new Page<>(1, 2);
    IPage<User> iPage = userMapper.selectPage(page, queryWrapper);
    System.out.println(iPage.getRecords()); //获得分页记录*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值