[SpringBoot]MyBatis Plus框架使用selectCount

news/2024/9/23 0:28:10/

目录

MyBatis Plus介绍

CRUD操作使用 

添加依赖: 

接口应该继承自BaseMapper

在继承自BaseMapper的泛型实体类上使用@TableName注解指定数据表的名称

在类中与主键对应的属性上使用@TableId注解指定主键的值如何处理

 另外,原本应该做的配置不变,例如在配置类中使用@MapperScan指定Mapper接口所在的包。

使用selectCount


 

MyBatis Plus介绍

MyBatis Plus是一个基于MyBatis的增强工具,它简化了MyBatis的开发流程,提供了更便捷、高效的数据库访问解决方案。MyBatis Plus在保留了MyBatis核心特性的基础上,提供了许多额外的功能和扩展,使得开发者可以更快速地编写数据库操作代码。

以下是MyBatis Plus的一些主要特性:

  1. 简化的CRUD操作:MyBatis Plus提供了丰富的CRUD操作方法,可以通过简单的接口方法完成常见的增删改查操作,无需编写SQL语句。

  2. 条件构造器:MyBatis Plus提供了强大的条件构造器,可以灵活地构建查询条件,支持链式调用,可读性强。

  3. 分页查询:MyBatis Plus内置了分页查询的支持,可以方便地进行分页查询操作。

  4. 代码生成器:MyBatis Plus提供了代码生成器工具,可以根据数据库表结构自动生成实体类、Mapper接口和XML映射文件,减少重复的编写工作。

  5. 乐观锁支持:MyBatis Plus支持乐观锁的使用,可以通过版本号等方式实现并发控制。

  6. 自动填充字段:MyBatis Plus支持自动填充字段,可以在插入和更新操作时自动填充某些字段的值,如创建时间、更新时间等。

  7. 多租户支持:MyBatis Plus提供了多租户的支持,可以在同一个数据库中实现租户数据的隔离和管理。

总体来说,MyBatis Plus简化了数据库操作的编写和维护工作,提高了开发效率,减少了重复性的代码编写。它与MyBatis完美集成,可以充分发挥MyBatis的灵活性和性能优势,是Java开发中常用的持久层框架之一。

CRUD操作使用 

添加依赖: 

<mybatis-plus-spring-boot.version>3.3.0</mybatis-plus-spring-boot.version>
<!-- Mybatis Plus整合Spring Boot的依赖项 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus-spring-boot.version}</version>
</dependency>

接口应该继承自BaseMapper

使用普通的MyBatis相同,需要自定义数据访问接口,不同的是,此接口应该继承自BaseMapper,且继承的泛型应该是尝试处理的数据表所对应的实体类的类型,例如:
 

同时继承之后继承的已有方法都不需要我们在写mapper接口写抽象方法了,对应的mapper的xml文件的sql语句也不需要在写了,但自己想写一些它没有的或者你不想用它的也是可以写的。但一般增删改以及selectCount用的比较多,其他查询还是自己写好做优化。

在继承自BaseMapper的泛型实体类上使用@TableName注解指定数据表的名称

  • 例如配置为@TableName("pms_album")

  • 如果没有通过以上注解指定名称,则MyBatis Plus会自动根据你的实现类的名称转换得到表名称,例如Album类对应的默认的表名称就是album
     

在类中与主键对应的属性上使用@TableId注解指定主键的值如何处理

  • 例如配置为@TableId(type = IdType.AUTO)

  • 如果没有通过以上注解进行配置,则MyBatis Plus默认会自动处理主键字段对应的值

 另外,原本应该做的配置不变,例如在配置类中使用@MapperScan指定Mapper接口所在的包。


使用selectCount

因为使用mybatis plus的 selectCount查询需要填入的是wapper<T>类型。
需要用到它的子集QueryWrapper,作用是设计sql语句WHERE的规则,如果要设计名称等于多少,就用eq,equals的意思,双引号“username”是需要的数据库里面的字段,匹配参数里面的adminAddNewParam.getUsername()。  等同于sql语句WHERE  username=#{username}

用int countByUsername就能得到结果。

 public void addNew(AdminAddNewParam adminAddNewParam) {log.debug("开始处理【添加管理员】的业务,参数:{}", adminAddNewParam);// 检查管理员用户名是否被占用,如果被占用,则抛出异常QueryWrapper<Admin> queryWrapper = new QueryWrapper<>();queryWrapper.eq("username", adminAddNewParam.getUsername());int countByUsername = adminMapper.selectCount(queryWrapper);log.debug("根据管理员用户名统计匹配的管理员数量,结果:{}", countByUsername);if (countByUsername > 0) {String message = "添加管理员失败,用户名已经被占用!";log.warn(message);throw new ServiceException(ServiceCode.ERR_CONFLICT, message);}
}

 


http://www.ppmy.cn/news/167854.html

相关文章

Windows程序设计 学习笔记 第九章 子窗口控件

目录&#xff1a; 文章目录 一&#xff0c;按钮类1.创建子窗口拓展1——获取对话框字符尺寸的方法拓展2——获取实例句柄的方法2.子窗口传递消息给父窗口3.父窗口传递信息给子窗口拓展3 窗口句柄与ID 的相互获取① 已知窗口句柄 获取 ID②已知子窗口ID 获取 子窗口句柄 4. 按钮…

官宣!Databend 和 XSKY星辰天合达成合作

近日&#xff0c;北京数变科技有限公司与北京星辰天合科技股份有限公司完成了产品兼容性适配互认证。 本次测试是对 Databend 云原生数据仓库平台与星辰天合企业级存储产品&超融合产品进行严格的联合测试验证&#xff0c;结果显示&#xff0c;双方产品完全兼容&#xff0c;…

如何快速学会php语言

要快速学会PHP语言&#xff0c;可以采取以下几个步骤&#xff1a; 入门学习首先&#xff0c;可以上网查找PHP的入门教程&#xff0c;了解基本的语法和概念&#xff0c;掌握变量、数组、函数、流程控制等基本知识。 PHP&#xff08;Hypertext Preprocessor&#xff09;是一种广…

dnf连接服务器黑屏xp系统,DNF地下城与勇士黑屏win10系统电脑解决方法

地下城与勇士(DNF)喜欢玩的朋友非常多&#xff0c;所以出现问题的朋友也就多了~电脑环境不同出现的问题也不一样&#xff0c;而黑屏问题有很多朋友遇上过&#xff0c;原因不一&#xff0c;下面针对一些黑屏情况分析下Win10系统电脑下解决方法和大家分享&#xff0c;希望对大家有…

dnf锁定计算机,DNF老电脑福音 教你如何提升游戏流畅度

DNF地下城与勇士从一开始的几个G更新到现在的10几个G&#xff0c;游戏的玩法越来越丰富&#xff0c;画面也越来越精美&#xff0c;但是我们换电脑的速度不同于游戏更新的速度&#xff0c;一些老玩家依旧在用着好几年前的电脑配置来玩现在的DNF&#xff0c;所以难免会有些卡顿或…

手把手教你搭建台服DNF

阅读本文前&#xff0c;假设你已经有了一台CentOS5.11的服务器。 关于云服务如何降级&#xff0c;移步另一篇文章&#xff1a;阿里云如何降级&#xff08;安装CentOS5.11&#xff09;&#xff1f; 配置&#xff1a;服务器1G1H&#xff08;1G内存、1核心CPU&#xff09;足够 接…

dnf服务器未响应怎么解决方法,DNF未响应的原因分析与解决方法

在玩dnf时是否出现过电脑未响应的情况&#xff0c;这让很多玩家都苦恼不已&#xff0c;下面学习啦小编就为大家介绍一下具体的原因分析与解决方法吧&#xff0c;欢迎大家参考和学习。 DNF未响应的原因分析&#xff1a; 第一种&#xff1a;内存使用率过低&#xff0c;电脑工作一…

Linux Command dnf 软件包管理

Linux Command dnf 软件包管理 tags: 软件包管理 文章目录 Linux Command dnf 软件包管理1. 简介2. 语法3. 安装4. 示例4.1 查看DNF版本4.2 列出启用的 DNF 存储库4.3 列出所有启用和禁用的 DNF 存储库4.4 使用 DNF 列出所有可用和已安装的软件包4.5 使用 DNF 列出所有已安装的…