BaseMapper 中的方法

BaseMapper 中的方法:

插入

  1. int insert(T entity) - 插入一条记录。

删除

  1. int deleteById(Serializable id) - 根据主键ID删除记录。

  2. int deleteById(T entity) - 根据实体对象(ID)删除记录。

  3. int deleteByMap(Map<String, Object> columnMap) - 根据列名-值对的条件删除记录。

  4. int delete(Wrapper<T> queryWrapper) - 根据条件对象删除记录。

  5. int deleteBatchIds(Collection<?> idList) - 批量删除记录,根据主键ID列表或实体列表。

更新

  1. int updateById(T entity) - 根据主键ID更新记录。

  2. int update(T entity, Wrapper<T> updateWrapper) - 根据条件对象更新记录。

查询

  1. T selectById(Serializable id) - 根据主键ID查询一条记录。

  2. List<T> selectBatchIds(Collection<? extends Serializable> idList) - 根据主键ID列表批量查询记录。

  3. List<T> selectByMap(Map<String, Object> columnMap) - 根据列名-值对的条件查询记录。

  4. T selectOne(Wrapper<T> queryWrapper) - 根据条件对象查询一条记录。

  5. Long selectCount(Wrapper<T> queryWrapper) - 根据条件对象查询总记录数。

  6. List<T> selectList(Wrapper<T> queryWrapper) - 根据条件对象查询全部记录。

  7. List<Map<String, Object>> selectMaps(Wrapper<T> queryWrapper) - 根据条件对象查询全部记录,并返回Map列表。

  8. List<Object> selectObjs(Wrapper<T> queryWrapper) - 根据条件对象查询全部记录,并只返回第一个字段的值。

  9. <P extends IPage<T>> P selectPage(P page, Wrapper<T> queryWrapper) - 根据条件对象分页查询记录。

  10. <P extends IPage<Map<String, Object>>> P selectMapsPage(P page, Wrapper<T> queryWrapper) - 根据条件对象分页查询记录,并返回Map列表。

boolean exists(Wrapper<T> queryWrapper) - 根据条件对象判断是否存在记录。

这四个查询方法分别提供了不同的查询策略:

  1. selectById(Serializable id): 这个方法是基于主键 ID 来查询单条记录。传入一个序列化的 ID,如果存在匹配的记录,就返回该记录的实体对象;如果没有匹配的记录,则返回 null

  2. selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList): 这个方法是基于主键 ID 列表来批量查询记录。传入一个包含序列化的 ID 的集合,返回一个列表,包含与 ID 集合中所有 ID 匹配的记录的实体对象。如果没有匹配的记录,则返回空列表。

  3. selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap): 这个方法是基于列的映射来查询记录。传入一个映射,其中键是列名,值是列的值,返回一个列表,包含与所有列映射匹配的记录的实体对象。如果没有匹配的记录,则返回空列表。《就是:一个传字段名,一个传值》

  4. selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper): 这个方法是基于实体对象封装操作类来查询单条记录。传入一个 Wrapper,它封装了查询条件。如果查询结果有多条记录,会抛出异常;如果有一条记录,就返回该记录的实体对象;如果没有匹配的记录,则返回 null

  1. List<T> selectList(Wrapper<T> queryWrapper)

    此方法返回一个实体对象的列表。每个实体对象代表查询结果中的一条记录,其中包含了该记录的所有字段。这个方法更适合于当你在应用程序中需要使用记录的所有信息时使用。

    例如,如果你有一个 User 实体类,每个 User 对象会包含 idnameemail 等属性,那么 selectList 会返回 List<User>,每个 User 对象都代表查询结果中的一条用户记录。

  2. List<Map<String, Object>> selectMaps(Wrapper<T> queryWrapper)

    此方法返回一个 Map 的列表,每个 Map 代表查询结果中的一条记录,其中 Map 的键是字段名,值是字段的值。这个方法更适合于当你需要更灵活地处理查询结果时使用,比如需要转换成 JSON 或者其他数据结构。

    例如,如果查询结果中包含 idnameemail 等字段,那么 selectMaps 会返回如下结构的列表:

    [ {"id": 1, "name": "John", "email": "john@example.com"},{"id": 2, "name": "Jane", "email": "jane@example.com"}, 
    // ... 其他记录 ]

选择依据:

  • 如果你需要处理实体对象,并在应用程序中使用这些对象,那么 selectList 是更好的选择。
  • 如果你更倾向于处理原始数据,或者需要更灵活地处理查询结果(例如,转换字段名或值),那么 selectMaps 是更好的选择。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/138346.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Easyui里的datagrid嵌入select下拉框

问题&#xff1a; 想使用datagird里嵌入select下拉框&#xff0c;并在提交form表单时获取datagrid选中的每行数据里的每个下拉框选中的值。 解决方案&#xff1a; 其中economicIssuesSelect使用下拉框&#xff0c;重点关注 initEconomicIssues(row)方法。这里的方法需要传递ro…

C语言基础知识点(八)联合体和大小端模式

以下程序的输出是&#xff08;&#xff09; union myun {struct { int x, y, z;} u;int k; } a; int main() {a.u.x 4;a.u.y 5;a.u.z 6;a.k 0;printf("%d\n", a.u.x); } 小端模式 数据的低位放在低地址空间&#xff0c;数据的高位放在高地址空间 简记&#xff…

微软(TTS)文本转语音服务API实现

此博客实现与java实现微软文本转语音&#xff08;TTS&#xff09;经验总结_java tts_${简简单单}的博客-CSDN博客之上&#xff0c;首先感谢博客源码的提供&#xff0c;本人在上面添加了一些详细的注释&#xff0c;方便大家跟好的理解和使用&#xff0c;毕竟我已经用原文调试了一…

云原生Kubernetes:pod进阶之资源管理与探针

目录 一、理论 1.pod的资源限制 2.健康检查&#xff08;探针Probe) 3.示例 二、实验 1.pod的资源限制 2.健康检查&#xff08;探针Probe) 三、问题 1.生成资源报错 2.api版本错误 3.echo N>/proc/sys/vm/drop_caches如何实现清理缓存 4.生成启动退出容器报错 5…

java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管…

python教程:使用gevent实现高并发并限制最大并发数

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 import time import gevent from gevent.pool import Pool from gevent import monkey # 一&#xff0c;定义最大并发数 p Pool(20) # 二&#xff0c;导入gevent…

【Docker】华为云服务器安装 Docker 容器

简介 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机…

知识图谱基本工具Neo4j使用笔记 五 :APOC插件安装及简单应用

文章目录 一、使用场景二、系统说明三、配置安装1. 插件下载2. 文件下载说明3. 版本对应4. 安装位置5. 修改配置文件6. 注意问题7. web端启动&#xff1a;测试 四、简单应用1. 编辑距离2. 基于编辑距离的相似度3. 模糊匹配 一、使用场景 APOC&#xff08;Awesome Procedures o…

基于movie lens-100k数据集的协同过滤算法实现

基于movie lens-100k数据集的协同过滤算法实现 数据集处理 基于用户的协同过滤算法的实现 基于物品的协同过滤算法的实现 数据集处理 import pandas as pdu_data pd.read_csv(D:/PyCharmWorkSpace/ml-100k/ml-100k/u.data) u_genre pd.read_csv(D:/PyCharmWorkSpace/ml-10…

如何批量为文件夹命名

如果你想要命名一些这样名字具有规律性的文件夹&#xff0c;当文件的数量增多&#xff0c;一个一个命名是非常耗费时间的。很容易想到&#xff0c;如果使用EXCEL&#xff0c;只需往下拉&#xff0c;就能很轻松的拉出1到5。那么&#xff0c;我们如何利用EXCEL来对文件夹进行快速…

LazadaAPI接口解析,实现获得lazada商品评论列表

Lazada是一个流行的跨境电商平台&#xff0c;它提供了API接口供开发者使用。要获取Lazada商品评论列表&#xff0c;您需要使用Lazada API接口并进行相应的请求。 以下是使用Lazada API接口获取商品评论列表的示例代码&#xff08;使用Python编写&#xff09;&#xff1a; pyth…

【Linux】系统编程线程互斥与同步(C++)

目录 【1】线程互斥 【1.1】进程线程间的互斥相关背景概念 【1.2】互斥量mutex 【1.3】互斥量实现原理探究 【1.4】RAII的加锁风格 【2】可重入VS线程安全 【2.1】概念 【2.2】常见的线程不安全的情况 【2.3】常见的线程安全的情况 【2.4】常见不可重入的情况 【2.5…

无线定位中TDOA时延估计算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...................................................................figure; plot(P1x,P1y…

【Graph Net学习】LINE实现Graph Embedding

一、简介 LINE (Large-scale Information Network Embedding,2015) 是一种设计用于处理大规模信息网络的算法。它主要的目标是在给定的大规模信息网络中学习高质量的节点嵌入&#xff0c;并尽量保留网络中信息的丰富性。其具体的表现为在一个低 维空间里以向量形式表示网络中的…

华为云云耀云服务器L实例评测|华为云上安装监控服务Prometheus三件套安装

文章目录 华为云云耀云服务器L实例评测&#xff5c;华为云上试用监控服务Prometheus一、监控服务Prometheus三件套介绍二、华为云主机准备三、Prometheus安装四、Grafana安装五、alertmanager安装六、三个服务的启停管理1. Prometheus、Alertmanager 和 Grafana 启动顺序2. 使用…

mysql workbench常用操作

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一&#xff1a;双击你要使用的库 方法二&#xff1a;USE 数据库名 2、复制表名&#xff0c;字段名 3、保存链接

折线图geom_line()参数选项

往期折线图教程 图形复现| 使用R语言绘制折线图折线图指定位置标记折线图形状更改 | 绘制动态折线图跟着NC学作图 | 使用python绘制折线图 前言 我们折线的专栏推出一段时间&#xff0c;但是由于个人的原因&#xff0c;一直未进行更新。那么今天&#xff0c;我们也参考《R语…

Kafka-UI

有多款kafka管理应用&#xff0c;目前选择的是github上star最多的UI for Apache Kafka。 关于 To run UI for Apache Kafka, you can use either a pre-built Docker image or build it (or a jar file) yourself. UI for Apache Kafka is a versatile, fast, and lightweight…

关于ABB机器人的IO创建和设置

首先要链接网线&#xff0c;请求写权限 关于ABB机器人的默认地址位10有的是63.31看你硬接线 ABB机器人分配好信号机器人控制柜要重启 可以把机器人分配的信号导出为EIO 类似与发那科机器人IO

Spring底层原理之 BeanFactory 与 ApplicationContext

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Spring底层原理 一、 BeanFactory 与 Appli…