IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 02_MybatisPlus—CRUD 接口 -> 正文阅读

[移动开发]02_MybatisPlus—CRUD 接口

1 Service CRUD 接口

  1. 通用 Service CRUD 封装IService (opens new window)接口,进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆。
  2. 泛型 T 为任意实体对象

1.1 Save

在这里插入图片描述

// 插入一条记录(选择字段,策略插入)
boolean save(T entity);

User afanda = new User(100L, "afanda", 25, "123456789@qq.com");
boolean res = userService.save(afanda);

// 插入(批量)
boolean saveBatch(Collection entityList);

User afanda = new User(102L, "afanda", 25, "123456789@qq.com");
User dafenqi = new User(103L, "dafenqi", 25, "123456789@qq.com");
User lining = new User(104L, "lining", 25, "123456789@qq.com");
User alidasi = new User(105L, "alidasi", 25, "123456789@qq.com");
List<User> users = Arrays.asList(afanda, dafenqi, lining, alidasi);

// 插入(批量)
boolean saveBatch(Collection entityList, int batchSize);

        User afanda = new User(102L, "afanda", 25, "123456789@qq.com");
        User dafenqi = new User(103L, "dafenqi", 25, "123456789@qq.com");
        User lining = new User(104L, "lining", 25, "123456789@qq.com");
        User alidasi = new User(105L, "alidasi", 25, "123456789@qq.com");
        List<User> users = Arrays.asList(afanda, dafenqi, lining, alidasi);
        boolean res = userService.saveBatch(users, 2);

在这里插入图片描述

1.2 SaveOrUpdate

在这里插入图片描述

// TableId 注解存在更新记录,否插入一条记录
boolean saveOrUpdate(T entity);

        User afanda = new User(102L, "Lenin", 25, "123456789@qq.com");
        boolean res = userService.saveOrUpdate(afanda);

在这里插入图片描述
在这里插入图片描述
// 根据updateWrapper尝试更新,否继续执行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper updateWrapper);

        UpdateWrapper<User> wrapper = new UpdateWrapper<User>().eq("name", "Stalin");
        User stalin = new User(106L, "Stalin", 25, "stalin@qq.com");
        boolean res = userService.saveOrUpdate(stalin, wrapper);

在这里插入图片描述
// 批量修改插入
boolean saveOrUpdateBatch(Collection entityList);
// 批量修改插入
boolean saveOrUpdateBatch(Collection entityList, int batchSize);

1.3 Remove

在这里插入图片描述

// 根据 entity 条件,删除记录
boolean remove(Wrapper queryWrapper);

        QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("name", "Jone");
        boolean res = userService.remove(queryWrapper);

在这里插入图片描述
// 根据 ID 删除
boolean removeById(Serializable id);
// 根据 columnMap 条件,删除记录
boolean removeByMap(Map<String, Object> columnMap);

        Map<String, Object> map = new HashMap<>();
        map.put("name", "Jack");
        boolean res = userService.removeByMap(map);

在这里插入图片描述
// 删除(根据ID 批量删除)
boolean removeByIds(Collection<? extends Serializable> idList);

1.4 Update

在这里插入图片描述

// 根据 UpdateWrapper 条件,更新记录 需要设置sqlset
boolean update(Wrapper updateWrapper);

        boolean res = userService.update(new UpdateWrapper<User>().set("name", "Zhukov").eq("id", 3));

在这里插入图片描述

// 根据 whereWrapper 条件,更新记录
boolean update(T updateEntity, Wrapper whereWrapper);

        User user = new User(106L, "Mark Huafei", 25, "Mark Huafei@qq.com");
        UpdateWrapper<User> wrapper = new UpdateWrapper<User>().eq("id", 106L);

在这里插入图片描述

// 根据 ID 选择修改
boolean updateById(T entity);

        User user = new User(106L, "Jack Jones", 25, "Jack Jones@qq.com");
        boolean res = userService.updateById(user);

在这里插入图片描述
// 根据ID 批量更新
boolean updateBatchById(Collection entityList);

// 根据ID 批量更新
boolean updateBatchById(Collection entityList, int batchSize);

1.5 Get

在这里插入图片描述

// 根据 ID 查询
T getById(Serializable id);

        User user = userService.getById(106L);

在这里插入图片描述

// 根据 Wrapper,查询一条记录。结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last(“LIMIT 1”)
T getOne(Wrapper queryWrapper);

        User user = userService.getOne(new QueryWrapper<User>().eq("email", "123456789@qq.com"));

在这里插入图片描述
报错信息:Expected one result (or null) to be returned by selectOne(), but found: 4

// 根据 Wrapper,查询一条记录
T getOne(Wrapper queryWrapper, boolean throwEx);

// 根据 Wrapper,查询一条记录
Map<String, Object> getMap(Wrapper queryWrapper);

        Map<String, Object> userMap = userService.getMap(new QueryWrapper<User>().eq("email", "123456789@qq.com"));

在这里插入图片描述
// 根据 Wrapper,查询一条记录
V getObj(Wrapper queryWrapper, Function<? super Object, V> mapper);

1.6 List

在这里插入图片描述
// 查询所有
List list();

        List<User> users = userService.list();

在这里插入图片描述
// 查询列表
List list(Wrapper queryWrapper);

        List<User> users = userService.list(new QueryWrapper<User>().eq("email", "123456789@qq.com"));

在这里插入图片描述
// 查询(根据ID 批量查询)
Collection listByIds(Collection<? extends Serializable> idList);

        List<User> users = userService.listByIds(Arrays.asList(3, 4, 5));

在这里插入图片描述
// 查询(根据 columnMap 条件)
Collection listByMap(Map<String, Object> columnMap);

// 查询所有列表
List<Map<String, Object>> listMaps();

// 查询列表
List<Map<String, Object>> listMaps(Wrapper queryWrapper);

// 查询全部记录
List listObjs();

// 查询全部记录
List listObjs(Function<? super Object, V> mapper);

// 根据 Wrapper 条件,查询全部记录
List listObjs(Wrapper queryWrapper);

// 根据 Wrapper 条件,查询全部记录
List listObjs(Wrapper queryWrapper, Function<? super Object, V> mapper);

1.7 Page

在这里插入图片描述

package com.zs.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
}

// 无条件分页查询
IPage page(IPage page);

 /**
         * Params:
         * current – 当前页
         * size – 每页显示条数
         */
        Page<User> page = new Page<>(2, 2);
        Page<User> userPage = userService.page(page);
        System.out.println("getRecords :" + userPage.getRecords());
        System.out.println("getCurrent :" + userPage.getCurrent());
        System.out.println("getOrders :" + userPage.getOrders());
        System.out.println("getSize :" + userPage.getSize());
        System.out.println("getTotal :" + userPage.getTotal());
        System.out.println("getPages :" + userPage.getPages());

在这里插入图片描述
// 条件分页查询
IPage page(IPage page, Wrapper queryWrapper);

// 无条件分页查询
IPage<Map<String, Object>> pageMaps(IPage page);

// 条件分页查询
IPage<Map<String, Object>> pageMaps(IPage page, Wrapper queryWrapper);

1.8 Count

// 查询总记录数
int count();

        int res = userService.count();

在这里插入图片描述
// 根据 Wrapper 条件,查询总记录数
int count(Wrapper queryWrapper);

        int res = userService.count(new QueryWrapper<User>().eq("email", "123456789@qq.com"));

在这里插入图片描述

1.9 Chain

1.9.1 query

// 链式查询 普通
QueryChainWrapper query();

        Integer res = new QueryChainWrapper<User>(userMapper)
                .eq("email", "123456789@qq.com")
                .count();
        System.out.println(res);

在这里插入图片描述

        List<User> res = new QueryChainWrapper<User>(userMapper)
                .eq("email", "123456789@qq.com")
                .list();
        System.out.println(res);

在这里插入图片描述
// 链式查询 lambda 式。
LambdaQueryChainWrapper lambdaQuery();

        List<User> res = new LambdaQueryChainWrapper<User>(userMapper)
                .eq(User::getAge, 25)
                .list();
        System.out.println(res);

在这里插入图片描述

2 Mapper CRUD 接口

2.1 Insert

// 插入一条记录
int insert(T entity);

        User user = new User(9L, "Martyn Davies", 25, "Martyn Davies@qq.com");
        int res = userMapper.insert(user);

在这里插入图片描述

2.2 Delete

在这里插入图片描述

// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper wrapper);

        int res = userMapper.delete(new QueryWrapper<User>().eq("id", 9L));

在这里插入图片描述
// 删除(根据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);

2.3 Update

在这里插入图片描述

// 根据 whereWrapper 条件,更新记录
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper whereWrapper);

        User user = new User(1L, "Maria cangai", 25, "Maria cangai@qq.com");
        int res = userMapper.update(user, new UpdateWrapper<User>().eq("id", 1L));

在这里插入图片描述
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

2.4 Select

在这里插入图片描述

// 根据 ID 查询
T selectById(Serializable id);

// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper queryWrapper);

        User user = userMapper.selectOne(new QueryWrapper<User>().eq("email", "cangai@qq.com"));

// 查询(根据ID 批量查询)
List selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);

// 根据 entity 条件,查询全部记录
List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper);

// 查询(根据 columnMap 条件)
List selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper queryWrapper);

// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List selectObjs(@Param(Constants.WRAPPER) Wrapper queryWrapper);

        List<Object> users = userMapper.selectObjs(new QueryWrapper<User>().eq("email", "123456789@qq.com"));

在这里插入图片描述
// 根据 entity 条件,查询全部记录(并翻页)
IPage selectPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);

        Page<User> page = userMapper.selectPage(new Page<User>(1, 2), 
                new QueryWrapper<User>().eq("email", "123456789@qq.com"));

在这里插入图片描述
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper queryWrapper);

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:41:49  更:2022-03-15 22:42:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:54:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码