【Java】Mybatis-plus条件及常用方法

条件

//根据学生id查询数据
studentService.list(Wrappers.<Student>lambdaQuery().eq(Student::getStudentid,studentid()))

在这里插入图片描述

//一个表中两个字段进行比较
wrapper.apply("out_count<order_count")

常用方法

Mapper层接口
一、查询

//1、查询List<对象> 返回List<T> 
List<T> list = selectList(QueryWrapper<T> wrapper);
  //例
  QueryWrapper wrapper=new QueryWrapper();
  wrapper.eq("uaccount",users.getUaccount());//这个不写就是无条件查询全部
  List<Users> users = mapper.selectList(wrapper);List<Users> users = mapper.selectList(Wrappers.<Users>lambdaQuery().eq(Users::getUaccount,studentid()))
  
//2、通过ID查询,返回实体类对象
selectById(I id);

//3、通过实体entity查询一条数据,返回实体类对象
selectOne(T entity);

//4、通过ID集合批量查询,返回List<T>
selectBatchIds(List<I> idList);

//5、统计查询,返回Integer
selectCount(T entity);

//6、通过自定义MAP查询,返回List<T>
selectByMap(Map<String, Object> columnMap);

//7、分页查询,page为分页实体,entityWrapper为查询条件构造器,返回Page<T>
Page<User> page = new Page<>(1, 3);
selectPage(Page<T> page, EntityWrapper<T> entityWrapper);

二、添加

//返回int(添加的行数)
insert(T entity);
//例
Users users=new Users(null,"张三","男",20);
mapper.insert(users);

三、删除

//1、根据条件,删除记录,返回int(删除的行数)
delete(QueryWrapper<T> wrapper);

//2、通过ID删除,返回int(删除的行数)
deleteById(I id);

//3、通过自定义MAP删除,返回int(删除的行数)
deleteByMap(Map<String, Object> columnMap);

//4、批量删除,返回int(删除的行数)
deleteBatchIds(List<I> idList);

四、修改

//1、通过实体的ID更新,返回int(修改的行数)
updateById(T entity);
//例
  //想要修改,必须先获取要修改的数据
  UpdateWrapper wrapper = new UpdateWrapper<>();
  wrapper.eq("name","zhangsan");//条件:根据名字查询数据
  Users user = mapper.selectOne(wrapper);//查询一条数据
  user.setAge(29);//修改年龄
  user.setSex("男");//修改性别
  userMapper.updateById(user);//根据user中的id修改数据库里的内容

//2、通过条件修改,返回int(修改的行数)
update(T updateEntity,QueryWrapper<T> wrapper);
//例
  UpdateWrapper<User> wrapper = new UpdateWrapper<>();
  1、wrapper.eq("name","zhangsan");
  User user = new User();
  user.setAge(18);
  userMapper.update(user, wrapper);//user更新数据,wrapper查询条件
  2、wrapper.eq("name","zhangsan").set("age", 18);
  userMapper.update(null, updateWrapper);

service层接口

一、查询

//1、根据ID查询,返回实体类
getById(Serializable id);

//2、根据条件查询一条记录,返回实体类
getOne(QueryWrapper<T> queryWrapper);//如果是多个会抛出异常,有以下两种解决方法
//(1)取一条,加上限制条件
wrapper.last("LIMIT 1")
//(2)取第一条
//throwEx为true,则直接执行方法
//throwEx为false,在满足条件的多条记录里找到第一条数据直接返回
getOne(Wrapper queryWrapper, boolean throwEx)

//3、根据 Wrapper查询一条记录,返回Map集合
getMap(QueryWrapper<T> queryWrapper);

//4、根据条件查询总记录数,括号里不写就是无条件查询,返回int
count(QueryWrapper<T> queryWrapper);

//5、分页查询
//无条件分页查询,返回IPage<T>
page(IPage<T> page);

//条件分页查询,返回IPage<T>
page(IPage<T> page, QueryWrapper<T> queryWrapper);

二、新增

//新增一条记录(如何id为自增的,在新增数据后,id会自动返回到实体类中,实体类中原本没有数据的id就有了数据),返回int(新增的行数)
save(T entity);

//批量新增,返回int(新增的行数)
saveBatch(Collection<T> 实体类集合);

//批量新增,返回int(新增的行数)
saveBatch(Collection<T> 实体类集合, int 插入批次数量);

三、删除

//根据条件删除记录,返回int(删除的行数)
remove(QueryWrapper<T> queryWrapper);

//根据 id 删除,返回int(删除的行数)
removeById(Serializable id);

//根据ID 批量删除,返回int(删除的行数)
removeByIds(Collection<?> idList);

//根据 map 条件,删除记录,返回int(删除的行数)
removeByMap(Map<String, Object> map);

四、新增或修改

//根据id判断数据是否存在,存在则根据id修改,不存在或该实体类没有id数据,则修改,返回int(影响行数)
saveOrUpdate(T entity);

//批量修改或新增,id有值为修改,id无值为新增
saveOrUpdateBatch(Collection<T> entityList);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值