MP学习01

CRDU基础使用案例

  1. 根据主键删除一条记录
int rows = userMapper.deleteById(123);
  1. 根据条件删除记录
// 构造条件
Map<String,Object> map = new HashMap<>();
map.put("name", "wangzz");
map.put("age", 18);
// 执行删除
int rows = userMapper.deleteByMap(map);
  1. 根据主键查询一条数据
User user = userMapper.selectById(123);
  1. 根据ids批量查找数据
    List ids = Arrays.asList(
    123L, 345L, 567L
    );
    List list = userMapper.selectBatchIds(ids);

  2. 根据指定参数查询
    Map<String, Object> map = new HashMap<>();
    // map的key指代的是mysql表中的列名
    map.put("name", "Jone");
    List list = userMapper.selectByMap(map);

  3. 指定查询指定结果的字段
    QueryWrapper queryWrapper = 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);
  1. 通过主键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 = ?
  1. 根据updateWrapper自定义条件修改数据
    UpdateWrapper updateWrapper = 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方法传入参数,通常情况如下:
  • 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 = new QueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(name), "name", name);
.like(StringUtils.isNotEmpty(email), "email", email);
List res = userMapper.selectList(queryWrapper);

https://img.kancloud.cn/0f/8f/0f8fe8849a8181a0b1551342459df560_1314x1380.png
posted @   Felix_Openmind  阅读(70)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示