MP学习01
CRDU基础使用案例
- 根据主键删除一条记录
int rows = userMapper.deleteById(123);
- 根据条件删除记录
// 构造条件
Map<String,Object> map = new HashMap<>();
map.put("name", "wangzz");
map.put("age", 18);
// 执行删除
int rows = userMapper.deleteByMap(map);
- 根据主键查询一条数据
User user = userMapper.selectById(123);
-
根据ids批量查找数据
Listids = Arrays.asList(
123L, 345L, 567L
);
Listlist = userMapper.selectBatchIds(ids); -
根据指定参数查询
Map<String, Object> map = new HashMap<>();
// map的key指代的是mysql表中的列名
map.put("name", "Jone");
Listlist = userMapper.selectByMap(map); -
指定查询指定结果的字段
QueryWrapperqueryWrapper = new QueryWrapper<>();
query.select("name", "age") // 指定查询结果字段
.in("age", Arrays.asList(30,31,34,35)
.last("limit 1");
7★ 大小关系查询
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.list("name", "J") // like是MP的条件构造器 ===> 模糊查询
.lt("age", 40)
.select("name", "age");
List<Map<String,Object>> maps = userMapper.selectMaps(queryWrapper);
- 通过主键id修改数据
User user = new User();
user.setId(123);
user.setAge(18);
user.setEmail("wz_bepro@163.com");
int rows = userMapper.updateById(user);
=========================================
等价的SQL语句
UPDATE user
SET age = ?, email = ?
WHERE id = ?
- 根据updateWrapper自定义条件修改数据
UpdateWrapperupdateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name", "Jack")
.eq("age", 18);
User user = new User();
user.setAge(29);
user.setEmail("wz_bepro@163.com");
int rows = userMapper.update(user, updateWrapper);
===========================================
等价的SQL语句
UPDATE user
SET age = ?, email = ?
WHERE name = ? AND age = ?
### 条件构造器Wrapper
Wrapper体系结构
- Wrapper
- AbstractWrapper
- AbstractLambdaWrapper
- LambdQueryWrapper
- LambdUpdateWrapper - QueryWrapper
- UpdateWrapper
条件构造器用于给如下的Mapper方法传入参数,通常情况如下:
- AbstractLambdaWrapper
- AbstractWrapper
- updateWrapper用于给update方法传入条件参数
- queryWrapper用于给delete和select方法传入参数
int delete(Wrapper<T> wrapper);
int update(T entity, Wrapper<T> updateWrapper);
T selectOne(queryWrapper);
Integer selectCount(queryWrapper);
List<T> selectList(queryWrapper);
List<Map<String, Object>> selectMaps(queryWrapper);
#### LIKE条件构造
String name = "test01"; // name不为空
String email = ""; // email为空字符串
QueryWrapper
queryWrapper.like(StringUtils.isNotEmpty(name), "name", name);
.like(StringUtils.isNotEmpty(email), "email", email);
List
https://img.kancloud.cn/0f/8f/0f8fe8849a8181a0b1551342459df560_1314x1380.png
学而不思则罔,思而不学则殆!

浙公网安备 33010602011771号