项目笔记1:通用 Service的常见方法

通用 Service 通常封装了常见的业务逻辑操作,以提高代码的复用性和可维护性。不同的框架和业务场景下,通用 Service 的方法会有所差异,但一般都会包含一些基本的增删改查(CRUD)操作,以下为你详细介绍:

基本的 CRUD 方法

  • 创建(Create)
    • save(T entity):用于保存单个实体对象到数据库中。例如在一个用户管理系统里,使用此方法保存新注册的用户信息。
    • saveBatch(Collection<T> entityList):批量保存实体对象集合,能提高数据插入效率,像一次性导入多个用户信息到系统时就会用到。
  • 读取(Read)
    • getById(ID id):依据主键 ID 从数据库中获取单个实体对象。例如根据用户 ID 获取特定用户的详细信息。
    • list():查询数据库中该实体的所有记录,返回一个实体列表,常用于展示所有用户列表的场景。
    • list(Wrapper<T> queryWrapper):根据自定义的查询条件(如年龄大于 18 岁、姓名包含特定字符等)查询符合条件的实体列表。
    • page(Page<T> page, Wrapper<T> queryWrapper):实现分页查询,可指定每页显示的记录数和当前页码,还能结合查询条件进行筛选,常用于展示大量数据时的分页显示。
  • 更新(Update)
    • updateById(T entity):根据实体对象的主键 ID 更新数据库中的记录,例如修改用户的联系方式。
    • update(T entity, Wrapper<T> updateWrapper):按照自定义的更新条件更新数据库记录,比如将所有年龄大于 60 岁的用户状态标记为 “老年用户”。
  • 删除(Delete)
    • removeById(ID id):根据主键 ID 从数据库中删除单个实体记录,如删除某个不再使用的用户账号。
    • remove(Wrapper<T> queryWrapper):根据自定义的删除条件删除符合条件的数据库记录,例如删除所有状态为 “已停用” 的用户记录。

其他常用方法

  • 统计类
    • count():统计数据库中该实体的记录总数,可用于显示用户总数等信息。
    • count(Wrapper<T> queryWrapper):统计符合特定查询条件的记录数量,如统计年龄在 20 - 30 岁之间的用户数量。
  • 条件查询辅助类
    • getOne(Wrapper<T> queryWrapper):根据查询条件查询单条记录,若符合条件的记录有多条,会抛出异常,适用于确保查询结果唯一的场景。

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

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

相关文章

阿里云99机器总是宕机,实测还是磁盘性能差

阿里云99计划总是宕机&#xff0c;经过反复排查&#xff0c;最终确认还是磁盘性能差。 阿里云99机器使用的磁盘类型是Entry云盘40GiB (2120 IOPS) 按照官方的一些数据&#xff0c;这个磁盘最小iops是1800最大是6000,实际使用中发现&#xff0c;这个6000值很虚&#xff0c;这个…

Fedora 43 计划移除所有 GNOME X11 相关软件包

Fedora 43 计划移除所有 GNOME X11 相关软件包&#xff0c;这是 Fedora 项目团队为全面拥抱 Wayland 所做的重要决策。以下是关于此计划的详细介绍&#xff1a; 提案内容&#xff1a;4 月 23 日&#xff0c;Neal Gompa 提交提案&#xff0c;建议从 Fedora 软件仓库中移除所有 G…

魔幻预言手游》:职业介绍!

在《魔幻预言》手游中&#xff0c;共有武玄、魔魅、剑仙三大核心职业&#xff0c;各具特色且定位鲜明&#xff0c;以下为具体介绍&#xff1a; 一、武玄&#xff08;战士&#xff09; 核心定位&#xff1a;近战物理输出与团队增益担当&#xff0c;兼具控制与防御能力。 战斗风…

精益数据分析(27/126):剖析用户价值与商业模式拼图

精益数据分析&#xff08;27/126&#xff09;&#xff1a;剖析用户价值与商业模式拼图 在创业和数据分析的领域中&#xff0c;每一次深入学习都是一次成长的契机。今天&#xff0c;我们继续秉持共同进步的理念&#xff0c;深入研读《精益数据分析》&#xff0c;剖析用户价值的…

【SwitchyOmega安装教程】

目录 一、插件安装 1. 下载安装文件 2. 打开浏览器扩展安装页面 3. 安装插件 二、界面详情 三、配置信息 3.1 设置IP 1、查看IP地址信息 2、批量测试IP是否有效 3、点击扩展程序&#xff0c;选择 Proxy SwitchyOmega 4、 点击选项进行配置 5、配置页面 一、插件安装 1…

矫平机终极指南:特殊材料处理、工艺链协同与全球供应链管理

一、特殊材料矫平&#xff1a;挑战与创新解决方案 1. 高温合金&#xff08;如Inconel 718&#xff09;处理 技术难点&#xff1a; 屈服强度高达1100 MPa&#xff0c;传统矫平力不足 高温下易氧化&#xff0c;需惰性气体保护环境 解决方案&#xff1a; 采用双伺服电机驱动&a…

反事实——AI与思维模型【82】

一、定义 反事实思维模型是一种心理认知模型,它指的是人们在头脑中对已经发生的事件进行否定,然后构建出一种可能性假设的思维活动。简单来说,就是思考“如果当时……,那么就会……”的情景。这种思维方式让我们能够超越现实的限制,设想不同的可能性和结果,从而对过去的…

Nginx:支持 HTTPS

文章目录 Nginx 开启 ssl 以支持 HTTPS1 生成本地证书2 开启 ssl 以支持 HTTPS3 将 https 的请求转发给 http 最终的 nginx.conf 如下 Nginx 开启 ssl 以支持 HTTPS [!IMPORTANT] 在下文中&#xff0c;将采用如下定义。 HTTP端口&#xff1a; 80 HTTPS端口&#xff1a; 443 服务…

[计算机科学#2]:从继电器到晶体管的电子计算机发展史(庞然大物的进化)

【核知坊】&#xff1a;释放青春想象&#xff0c;码动全新视野。 我们希望使用精简的信息传达知识的骨架&#xff0c;启发创造者开启创造之路&#xff01;&#xff01;&#xff01; 内容摘要&#xff1a;本文讲述了20世纪初至1950年代计算机技术的发展历程…

【ESP32S3】Cache 框图和操作

ESP32-S3 采用双核共享 ICache (指令缓存) 和 DCache &#xff08;数据缓存&#xff09; 结构&#xff0c;如下图所示。以便当 CPU 的指令总线和数据总线同时发起请求时&#xff0c;也可以迅速响应&#xff1a; Cache 的存储空间与内部存储空间可以复用。具体为 Internal SRAM0…

wireshark从HEX转储导入使用方法

官方资料: https://www.wireshark.org/docs/wsug_html_chunked/ChIOImportSection.html 方法1&#xff1a; 文本文件&#xff0c;纯内容导入: ff ff ff ff ff ff 00 00 00 00 5f 0f 08 06 00 01 08 00 06 04 00 01 00 00 00 00 5f 0f 64 01 60 10 00 00 00 00 00 00 64 01 01…

【Android】四大组件之Activity

目录 一、什么是Activity 二、如何创建和配置Activity 三、Activity 跳转与数据传递 四、数据保存与恢复 五、Activity 启动模式 六、自定义返回行为 七、复杂界面布局 你可以把Activity想象成手机屏幕上的一个“页面”。比如&#xff0c;当你打开一个App时&#xff0c;…

uml类关系(实现、继承,聚合、组合,依赖、关联)

drawio和EA是架构设计时经常使用的画图工具。 drawio学习门槛低&#xff0c;使用灵活&#xff0c;但是功能仅仅限于画图。 EA学习门槛高&#xff0c;但是功能更加的丰富&#xff1a; ①在画图方面&#xff0c;EA严格满足UML标准&#xff0c;EA中的图和类是关联的&#xff0c…

C++如何设计线程池(thread pool)来提高线程的复用率,减少线程创建和销毁的开销

线程池的基本概念与多线程编程中的角色 线程池&#xff0c;顾名思义&#xff0c;是一种管理和复用线程的资源池。它的核心思想在于预先创建一定数量的线程&#xff0c;并将这些线程保持在空闲状态&#xff0c;等待任务的分配。一旦有任务需要执行&#xff0c;线程池会从池中取出…

React.memo 和 useMemo

现象 React 中&#xff0c;通常父组件的某个state发生改变&#xff0c;会引起父组件的重新渲染&#xff08;和其他state的重新计算&#xff09;&#xff0c;从而会导致子组件的重新渲染&#xff08;和其他非相关属性的重新计算&#xff09; 问题一&#xff1a;如何避免因为某个…

防火墙技术深度解析:从包过滤到云原生防火墙的部署与实战

防火墙技术深度解析&#xff1a;从包过滤到云原生防火墙的部署与实战 在网络安全防御体系中&#xff0c;防火墙是第一道物理屏障&#xff0c;承担着“网络流量守门人”的核心角色。从早期基于IP地址的包过滤设备到如今集成AI威胁检测的云原生防火墙&#xff0c;其技术演进始终…

strcmp()在C语言中怎么用(附带实例)

C语言标准库中的 strcmp() 函数用于比较两个字符串。 strcmp() 函数原型如下&#xff1a; int strcmp (const char * str1, const char * str2); const char *str1 表示待比较字符串 1 的首地址&#xff1b;const char *str2 表示待比较字符串 2 的首地址。 如果两个字符串相…

搜广推校招面经八十二

一、L1 和 L2 正则化的区别&#xff1f;对数据分布有什么要求&#xff0c;它们都能防止过拟合吗&#xff1f; 1.1. L1 与 L2 正则化的区别 特性L1 正则化&#xff08;Lasso&#xff09;L2 正则化&#xff08;Ridge&#xff09;正则项λ * ∑|wᵢ| λ ∗ ∑ ( w i 2 ) λ * ∑…

数据结构和算法(九)--红黑树

一、红黑树 1、红黑树 前面介绍了2-3树&#xff0c;可以看到2-3树能保证在插入元素之后&#xff0c;树依然保持平衡状态&#xff0c;它的最坏情况下所有子结点都是2-结点&#xff0c;树的高度为IgN&#xff0c;相比于我们普通的二叉查找树&#xff0c;最坏情况下树的高度为N,确…

工业摄像头通过USB接口实现图像

工业摄像头系列概览&#xff1a;类型与应用 工业摄像头系列涵盖了多种类型&#xff0c;以满足不同行业和应用的需求。以下是对工业摄像头系列的一些介绍&#xff1a; 一、主要类型与特点 USB工业摄像头 &#xff1a;这类摄像头通常通过USB接口与计算机连接&#xff0c;适用于…