返回顶部
首页 > 资讯 > 后端开发 > JAVA >BaseMapper接口的使用
  • 332
分享到

BaseMapper接口的使用

mybatisjavaspring 2023-08-17 14:08:32 332人浏览 泡泡鱼
摘要

Java知识点总结:想看的可以从这里进入 目录 3、相关方法3.1、BaseMapper接口3.1.1、新增3.1.2、删除3.1.3、修改3.1.4、查询 3、相关方法 3.1、BaseMapper接

Java知识点总结:想看的可以从这里进入

3、相关方法


3.1、BaseMapper接口

mybatis-Plus中的基本CRUD在内置的 BaseMapper 中都已得到了实现,我们可以直接使用,这样大大的简化了开发效率。

public interface BaseMapper extends Mapper {    //插入一条记录    int insert(T entity);    //根据 ID 删除    int deleteById(Serializable id);    //根据实体(ID)删除    int deleteById(T entity);    //根据 columnMap 条件,删除记录    int deleteByMap(@Param(Constants.COLUMN_MAP) Map columnMap);    // 删除记录,条件生成器根据entity生成where后的条件    int delete(@Param(Constants.WRAPPER) Wrapper queryWrapper);    //删除(根据ID或实体 批量删除)    int deleteBatchIds(@Param(Constants.COLL) Collection idList);    // 根据 ID 修改    int updateById(@Param(Constants.ENTITY) T entity);    // 根据 whereEntity 条件,更新记录    int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper updateWrapper);    //根据 ID 查询    T selectById(Serializable id);    //查询(根据ID 批量查询)    List selectBatchIds(@Param(Constants.COLL) Collection idList);    // 查询(根据 columnMap 条件)    List selectByMap(@Param(Constants.COLUMN_MAP) Map columnMap);    //查询一条记录    default T selectOne(@Param(Constants.WRAPPER) Wrapper queryWrapper) {       .......    }    //根据 Wrapper 条件,判断是否存在记录    default boolean exists(Wrapper queryWrapper) { .....    }    // 根据 Wrapper 条件,查询总记录数    Long selectCount(@Param(Constants.WRAPPER) Wrapper queryWrapper);    //根据 entity 条件,查询全部记录    List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper);    //根据 Wrapper 条件,查询全部记录    List> selectMaps(@Param(Constants.WRAPPER) Wrapper queryWrapper);    //根据 Wrapper 条件,查询全部记录    List selectObjs(@Param(Constants.WRAPPER) Wrapper queryWrapper);    // 根据 entity 条件,查询全部记录(并翻页)    

> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper queryWrapper); //根据 Wrapper 条件,查询全部记录(并翻页)

>> P selectMapsPage(P page, @Param(Constants.WRAPPER) Wrapper queryWrapper);}

3.1.1、新增

在封装的 BaseMapper 中只有一个插入语句,因为海量数据插入单条sql无法实行,所以mybatis-plus 把批量插入放在了Service 层对应的封装接口里了。

image-20230306112758056

@Resourceprivate UserMapper userMapper;@Testpublic void test2(){//新增数据    User user1 = new User();    user1.setUsername("mybatisplus测试");    user1.setPassword("12312312");    int insert = userMapper.insert(user1);    System.out.println("受影响行数:"+insert);    //自动获取id(默认使用雪花算法生成的id)    Integer id = user1.getUserId();    //获取数据    User user = userMapper.selectById(id);    System.out.println(user);}

image-20230305162006466

这个ID是MyBatis-Plus基于雪花算法生成的一个ID。之所以会为负数,是因为数据库设置的是自增,而在User实体类中没有进行设置

//IdType.ID_WORKER_STR 默认的;底层使用了雪花算法;类型为Integer//IdType.AUTO 数据库自增;数据库上必须设置为自增//IdType.NONE 没有设置主键类型;跟随全局;全局的主键策略如果没有设置,默认是雪花算法//IdType.INPUT 手动输入;必须手动输入,数据库自增也没用;//IdType.UUID 全局唯一id;无序;字符串;//ID_WORKER_STR 全局唯一(idWorker的字符串表示);@TableId(value = "user_id",type = IdType.AUTO)private Integer userId;

设置完成后,将数据库之前测试的数据删除,重新运行一下

image-20230305163033074

3.1.2、删除

image-20230305163710348

  1. 数据

    image-20230305165241607
  2. 删除一行数据

    //通过id删除一行数据int i = userMapper.deleteById(15);System.out.println("受影响行数:"+i);
    image-20230305164213194
  3. 批量删除

    //批量删除List idList = Arrays.asList(16,17, 18);int i1 = userMapper.deleteBatchIds(idList);System.out.println("受影响行数:"+i1 );
    image-20230305164407038
  4. 通过Map设置条件

    //根据条件删除Map map = new HashMap<>();map.put("username","新增");map.put("passWord","456454");//删除username为新增,且password为456454的数据int i = userMapper.deleteByMap(map);System.out.println("受影响行数:"+ i );
    image-20230305164924035

3.1.3、修改

image-20230305165531886

User user = userMapper.selectById(11);System.out.println(user);//对user进行修改user.setUsername("修改");user.setPassword("2131278");int i = userMapper.updateById(user);System.out.println("受影响行数:"+ i );//修改后的UserUser user1 = userMapper.selectById(11);System.out.println(user1);
image-20230305165925564

3.1.4、查询

image-20230305171506899
  1. 查询一条数据

    //根据ID查询User user = userMapper.selectById(1);System.out.println(user);//根据 LambdaQueryWrapper 的条件查询User user1 = userMapper.selectOne(new LambdaQueryWrapper().like(User::getUsername,"root"));System.out.println(user1);
    image-20230305172440166
  2. 根据ID批量查询

    //根据ID批量查询List list = Arrays.asList(1, 2, 3);List users = userMapper.selectBatchIds(list);users.forEach(System.out::println);
    image-20230305172625364
  3. 通过map条件查询,键值对应数据的字段和值。

    //通过map条件查询Map map = new HashMap<>();map.put("username","root");List users = userMapper.selectByMap(map);users.forEach(System.out::println);
    image-20230305172929169
  4. 查询所有数据

    //查询所有数据,参数为nullList users = userMapper.selectList(null);users.forEach(System.out::println);
    image-20230305173131920

来源地址:https://blog.csdn.net/yuandfeng/article/details/129660626

--结束END--

本文标题: BaseMapper接口的使用

本文链接: https://lsjlt.com/news/372913.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • BaseMapper接口的使用
    Java知识点总结:想看的可以从这里进入 目录 3、相关方法3.1、BaseMapper接口3.1.1、新增3.1.2、删除3.1.3、修改3.1.4、查询 3、相关方法 3.1、BaseMapper接...
    99+
    2023-08-17
    mybatis java spring
  • Mybatis-Plus接口BaseMapper与Services使用详解
    最近在工作开发中遇到一个批量新增修改的处理,我使用的是 mybatis-plus,但是在用的 BaseMapper 接口里是没有这个方法的,后来发现 Service 接口里有这个方法...
    99+
    2024-04-02
  • Mybatis-Plus接口BaseMapper与Services如何使用
    这篇文章主要介绍“Mybatis-Plus接口BaseMapper与Services如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mybatis-Plus接口BaseMapper与Servi...
    99+
    2023-06-30
  • mybatis-plus中BaseMapper入门使用
    目录入门使用BaseMapper完成增删改查BaseMapper各方法详解InsertDeleteUpdateSelect具体教程参考官网文档: baomidou.com/ 入门使...
    99+
    2024-04-02
  • 基于Consumer接口、Predicate接口初使用
    目录Consumer 接口源码直接使用 accept()使用 andThen()Predicate 接口源码使用 test()使用 negate()使用 and()使用 or()、i...
    99+
    2024-04-02
  • uplink接口的使用方法
    这篇文章主要介绍uplink接口的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!uplink接口的使用方法:级联的时候,可使用一般的网线将一个交换机的普通端口和另一个交换机的Uplink口连起来。如果两个设备...
    99+
    2023-06-14
  • 基于Consumer接口、Predicate接口初使用是怎样的
    这篇文章将为大家详细讲解有关基于Consumer接口、Predicate接口初使用是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Consumer 接口源码package j...
    99+
    2023-06-22
  • 怎样使用H5的通用接口
    这篇文章将为大家详细讲解有关怎样使用H5的通用接口,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先说几个基本类型: DOMString, boolean, long, u...
    99+
    2024-04-02
  • C#的INotifyPropertyChanged接口怎么使用
    这篇文章主要介绍“C#的INotifyPropertyChanged接口怎么使用”,在日常操作中,相信很多人在C#的INotifyPropertyChanged接口怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-29
  • 怎么使用C#的API接口
    这篇文章主要介绍“怎么使用C#的API接口  ”,在日常操作中,相信很多人在怎么使用C#的API接口  问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用C#的API接口  ...
    99+
    2023-06-03
  • Golang接口的定义与空接口及断言的使用示例
    目录1. Golang中的接口2. 为什么要使用接口3. 定义一个Usber接口(从下往上转换)4. 空接口1. 空接口说明2. 空接口作为函数的参数3. 切片实现空接口4. map...
    99+
    2023-05-15
    Go接口的定义 Go空接口 Go断言
  • 怎么使用API接口
    这篇文章主要介绍“怎么使用API接口”,在日常操作中,相信很多人在怎么使用API接口问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用API接口”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!接口交互前...
    99+
    2023-06-16
  • TypeScript接口怎么使用
    这篇文章主要讲解了“TypeScript接口怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TypeScript接口怎么使用”吧!前言:TS的核心原则之一就是对所具有的结构 进行类型检...
    99+
    2023-06-22
  • 如何使用Comparable接口
    这篇文章主要介绍“如何使用Comparable接口”,在日常操作中,相信很多人在如何使用Comparable接口问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Comparable接口”的疑惑有所帮助!...
    99+
    2023-06-17
  • java.sql.ResultSetMetaData接口怎么使用
    java.sql.ResultSetMetaData接口是用于描述ResultSet中的元数据的接口。它提供了一些方法来获取和操作R...
    99+
    2023-10-23
    java
  • TypeScript接口使用介绍
    目录1 概述2 接口类别2.1 属性接口2.2 可选接口2.3 函数类型接口2.4 可索引接口2.5 类类型接口3 接口继承1 单接口继承语法格式2 多接口继承语法格式1 概述 接口...
    99+
    2022-11-13
    TypeScript接口 TypeScript接口使用
  • Go接口怎么使用
    本篇内容主要讲解“Go接口怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go接口怎么使用”吧!接口用法简介接口(interface)是一种类型,用来定义行为(方法)。type ...
    99+
    2023-06-30
  • GO语言中接口和接口型函数的具体使用
    目录前言GO语言中的接口怎么用?使用函数类型实现接口有何好处?GO源码例子前言 今天在编码中,看到了一个非常经典的接口用法如下,于是查阅了相关资料,发现此种写法为接口型函数,本文对此...
    99+
    2023-03-09
    GO语言接口 GO语言接口型函数
  • Java List接口与Iterator接口及foreach循环使用的方法
    这篇文章主要介绍“Java List接口与Iterator接口及foreach循环使用的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java List接口与Iterator...
    99+
    2023-06-30
  • Golang接口的定义与空接口及断言怎么使用
    这篇文章主要讲解了“Golang接口的定义与空接口及断言怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang接口的定义与空接口及断言怎么使用”吧!1. Golang中的接口在G...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作