6.基于SpringBoot的SSMP整合案例-业务层开发

目录

1.业务层标准开发

 1.1接口定义

 1.2实现类定义

 1.3测试类定义

1.4小结:

2.业务层快速开发

2.1使用MyBatisP1us提供有业务层通用接口(ISerivce)与业务层通用实现类(ServiceImpl),t>

接口定义:

实现类定义:

测试类:

2.2在通用类基础上做功能重载或功能追加

接口定义

2.3注意重载时不要覆盖原始操作,避免原始提供的功能丢失

自定义方法:

2.4小结:


1.业务层标准开发

 1.1接口定义

创建BookService接口文件,如下图所示:

代码如下图所示:

package com.summer.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.summer.domain.Book;import java.util.List;public interface BookService {Boolean save(Book book);Boolean update(Book book);boolean delete(Integer id);Book getById(Integer id);List<Book> getAll();IPage<Book> getPage(Integer currentPage,Integer pageSize);
}

 1.2实现类定义

创建BookService实现类文件,如下图所示:

代码如下图所示:

package com.summer.service.impl;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.summer.dao.BookDao;
import com.summer.domain.Book;
import com.summer.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class BookServiceImpl implements BookService {@Autowiredprivate BookDao bookDao;@Overridepublic Boolean save(Book book) {return bookDao.insert(book)>0;}@Overridepublic Boolean update(Book book) {return bookDao.updateById(book) >0 ;}@Overridepublic boolean delete(Integer id) {return bookDao.deleteById(id)>0;}@Overridepublic Book getById(Integer id) {return bookDao.selectById(id);}@Overridepublic List<Book> getAll() {return bookDao.selectList(null);}@Overridepublic IPage<Book> getPage(Integer currentPage, Integer pageSize) {IPage page = new Page(currentPage,pageSize);return bookDao.selectPage(page,null);}
}

 1.3测试类定义

创建BookServiceTestCase测试类文件,如下图所示:

代码如下图所示:

package com.summer.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.summer.domain.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
public class BookServiceTestCase {@Autowiredprivate BookService bookService;@Testvoid testGetById(){System.out.println(bookService.getById(1));}@Testvoid testSave() {Book book = new Book();book.setType("历史");book.setName("历史的温度");book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");bookService.save(book);}@Testvoid testGetAll(){System.out.println(bookService.getAll());}@Testvoid testUpdate(){Book book = new Book();book.setId(7);book.setType("历史");book.setName("历史的温度1");book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");System.out.println(bookService.update(book));}@Testvoid testDelete(){bookService.delete(15);}@Testvoid testGetPage() {IPage<Book>  result= bookService.getPage(1,5);System.out.println(result.getPages());System.out.println(result.getSize());System.out.println(result.getCurrent());System.out.println(result.getRecords());System.out.println(result.getTotal());}
}

1.4小结:

1.Service接口名称定义成业务名称,并与Dao接口名称进行区分
2.制作测试类测试Service功能是否有效

2.业务层快速开发

2.1使用MyBatisP1us提供有业务层通用接口(ISerivce<T>)与业务层通用实现类(ServiceImpl<M,T>)

  • 接口定义:

新建接口类文件,位置如下图所示:

接口代码定义,如下所示:

package com.summer.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.summer.domain.Book;public interface IBookService extends IService<Book> {}
  • 实现类定义:

package com.summer.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.summer.dao.BookDao;
import com.summer.domain.Book;
import com.summer.service.IBookService;
import org.springframework.stereotype.Service;@Service
public class BookServiceImpl extends ServiceImpl<BookDao, Book> implements IBookService {
}
  • 测试类:

package com.summer.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.summer.domain.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
public class BookServiceTestCase {@Autowiredprivate IBookService bookService;@Testvoid testGetById(){System.out.println(bookService.getById(1));}@Testvoid testSave() {Book book = new Book();book.setType("历史");book.setName("历史的温度");book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");bookService.save(book);}@Testvoid testGetAll(){System.out.println(bookService.list());}@Testvoid testUpdate(){Book book = new Book();book.setId(7);book.setType("历史");book.setName("历史的温度1");book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");System.out.println(bookService.updateById(book));}@Testvoid testDelete(){bookService.removeById(16);}@Testvoid testGetPage() {IPage<Book> page = new Page<Book>(1,5);bookService.page(page,null);System.out.println(page.getPages());System.out.println(page.getSize());System.out.println(page.getCurrent());System.out.println(page.getRecords());System.out.println(page.getTotal());}
}

2.2在通用类基础上做功能重载或功能追加

  • 接口定义

追加的操作与原始操作通过名称区分,功能类似,代码如下所示:

package com.summer.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.summer.domain.Book;public interface IBookService extends IService<Book> {Boolean delete(Integer id);Boolean insert(Book book);Boolean modify(Book book);Book get(Integer id);
}
  • 实现类定义:
package com.summer.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.summer.dao.BookDao;
import com.summer.domain.Book;
import com.summer.service.IBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class BookServiceImpl extends ServiceImpl<BookDao, Book> implements IBookService {@Autowiredprivate BookDao bookDao;public Boolean insert(Book book) {return bookDao.insert(book) > 0;}public Boolean modify(Book book) {return bookDao.updateById(book) > 0;}public Boolean delete(Integer id) {return bookDao.deleteById(id) > 0;}public Book get(Integer id) {return bookDao.selectById(id);}
}

2.3注意重载时不要覆盖原始操作,避免原始提供的功能丢失

自己定义的方法名尽量不要覆盖原始操作,避免原始提供的功能丢失,如果特殊情况,必须一样,必须在方法名上面添加注释 @Override

  • 自定义方法:

  • 原始操作:

2.4小结:

1.使用通用接口(ISerivce<T>)快速开发Service
2.使用通用实现类(ServiceImpl<M,T>)快速开发ServiceImp1
3.可以在通用接口基础上做功能重载或功能追加
4.注意重载时不要覆盖原始操作,避免原始提供的功能丢失

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

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

相关文章

AI绘画Stable Diffusion 超高分辨率扩图教程:ControlNet组件-Tile妙用,增强细节保持构图完整!

大家好&#xff0c;我是向阳 今天给大家分享如何用AI绘画工具Stable Diffusion 的 ControlNet Tile工具应用。ControlNet Tile模型能够在SD绘图过程中&#xff0c;实现高分辨率下实现高清扩图&#xff0c;并且避免出现图像分身现象&#xff0c;以及可以调整SD扩散生产过程噪声…

Unity射击游戏开发教程:(29)躲避敌人的子弹射击

在这篇文章中,我将介绍如何创建一个可以使玩家火力无效的敌人。创建的行为如下...... 当玩家向敌人开火时,敌人会向左或向右移动。向左或向右的移动是随机选择的,并在一段时间后停止敌人的移动。如果敌人移出屏幕,它就会绕到另一边。将一个精灵拖到画布上,将其缩小以匹配游…

代码随想录-二叉搜索树①

目录 二叉搜索树的定义 700. 二叉搜索树中的搜索 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 98. 验证二叉搜索树 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 530. 二叉搜索树的最小绝对差 题目描述&#x…

Nature:使用语义熵检测大语言模型中的幻觉

使用语义熵检测大语言模型中的幻觉 Detecting hallucinations in large language models using semantic entropy 论文阅读摘要研究目标论文图表概述总结关键解决方案语义熵计算:虚构内容检测: 双向蕴涵在大语言模型中的应用上下文的重要性蕴涵估计器 实验设计语义熵计算步骤结…

文献解读-基准与方法研究-第十五期|《不同 DNA 测序平台的标准化比较》

关键词&#xff1a;基准与方法研究&#xff1b;基因测序&#xff1b;结构变异检测&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;Standardized Comparison of Different DNA Sequencing Platforms标题&#xff08;中文&#xff09;&#xff1a;不同 DNA…

【规范】Git分支管理,看看我司是咋整的

前言 &#x1f34a;缘由 Git分支管理好&#xff0c;走到哪里都是宝 &#x1f3c0;事情起因&#xff1a; 最近翻看博客中小伙伴评论时&#xff0c;发现文章【规范】看看人家Git提交描述&#xff0c;那叫一个规矩一条回复&#xff1a; 本狗亲测在我司中使用规范的好处&#xf…

windows电脑如何使用计划任务定时重启电脑

下面是亲测可用。 1.windows设置-搜索控制面板-系统和安全-管理工具–计划任务 这时候开始创建计划任务了 1.创建基本任务 2.填写名称&#xff08;这里根据需要自己填写&#xff09; 2.触发器里选择&#xff1a;每日&#xff0c;下一步 3.修改时间&#xff0c;然后点击下…

解密智慧校园学工管理系统的学生机构功能

智慧校园学工管理系统中的“学生机构”功能&#xff0c;是专为促进学生组织高效运作和校园文化繁荣而设计的一套数字化管理工具。它从多个维度出发&#xff0c;全面覆盖学生组织的生命周期管理&#xff0c;确保学生自治能力和校园活力得到显著提升。 首先&#xff0c;这一功能支…

构造函数深入理解

目录 构造函数构造函数体赋值初始化列表初始化列表格式初始化列表的意义以及注意点const修饰的成员变量初始化对象成员具体初始化的地方缺省值存在的意义例子1例子2 初始化与赋值引用成员变量的初始化注意点1注意点2我的疑惑 自定义类型成员初始化例子1例子2例子3例子4 初始化列…

平衡二叉查找树和多路查找树

平衡二叉查找树 普通平衡二叉查找树 平衡二叉树定义是按照有序排列成树状&#xff0c;左子树数据大于右子树&#xff0c;任意节点的左右子树高度不能大于1 优点&#xff1a;可以保证绝对的平衡 缺点&#xff1a;当进行删除节点和新增节点&#xff0c;树进行自平衡的时候&…

Vanchip新一代WiFi产品全新亮相

1‧ 研讨会介绍 随着 Wi-Fi7 时代的到来&#xff0c;高频信号衰减较高&#xff0c;因此需要外挂 FEM 电路以提高发射信号的增益&#xff0c;从而保障远距离通信的效果和范围。WiFi-FEM 逐渐成为智慧手机、路由器等终端产品中的标配芯片。Vanchip 针对客户的迫切需求&#x…

【高精度实验】PFA具塞试管 四氟塞子 实验室分析专用

PFA具塞试管&#xff0c;以其四氟塞子的卓越密封性能&#xff0c;为实验室的精确度和安全性提供了双重保障。以下是针对PFA具塞试管的营销文案&#xff0c;特别强调其四氟塞子的特性&#xff1a; 【四氟密封&#xff0c;科研无忧】 在追求极致精确的科研世界里&#xff0c;PF…

安华金和—可信数据空间助力公共数据授权运营安全有序开展的实践探索

伴随数字化、网络化和智能化的快速发展&#xff0c;数字经济与实体经济深度融合&#xff0c;数据已然成为经济发展赖以依托的基础性、战略性资源&#xff0c;对社会生产、分配、流通、消费和社会服务管理等各环节产生深刻影响。我国高度重视数字经济发展&#xff0c;将数据列入…

14-21 人工智能的历史以及简单神经网络的工作原理

初始 “我们需要走得更深”这句台词出自电影《盗梦空间》。这是在讨论深入梦境更深层次时说的&#xff0c;暗示需要探索梦境的更深层次。虽然这似乎是不可能的&#xff0c;但它传达的理念是&#xff0c;要创造一个新的世界&#xff0c;就必须冒险进入更深的层次。 电影《盗梦空…

3D问界—MAYA中冻结变化的作用以及应用的场景

问题提出&#xff1a;MAYA中冻结变化的作用以及应用的场景 在Maya中&#xff0c;“冻结变换”&#xff08;Freeze Transformations&#xff09;的作用是重置对象的变换属性&#xff0c;包括平移、旋转和缩放&#xff0c;将它们归零或者设定为特定的值。这通常在以下几个步骤中需…

unity强力配置插件Luban【Next最新版本】(二)本地化

文章目录 前言一、快速实现静态本地化1、表格格式2、本地化文本3、修改bat文件3、打表 二、多语言切换1、修改bat文件2、增加本地化管理脚本3、测试 总结 前言 无需多言&#xff0c;本地化&#xff08;Localization&#xff0c;简称 L10N&#xff09;是指将产品、内容或服务适…

软考的报名详细流程

2024年软考的考试时间已经公布&#xff0c;分别为5月25日至28日和11月9日至12日。准备参加2024年软考的朋友们&#xff0c;一定要提前关注官方发布的考试安排。 本文将详细介绍软考报考的整个流程。准备报考的朋友们&#xff0c;阅读本文就足够啦&#xff01;软考的报考流程大致…

【CT】LeetCode手撕—1143. 最长公共子序列

目录 题目1- 思路2- 实现⭐1143. 最长公共子序列——题解思路 3- ACM 实现 题目 原题连接&#xff1a;1143. 最长公共子序列 1- 思路 模式识别&#xff1a;最长公共子序列——> 动规五部曲 2- 实现 ⭐1143. 最长公共子序列——题解思路 class Solution {public int longe…

2024上半年网络工程师考试《应用技术》试题一

阅读以下说明&#xff0c;回答问题。 【说明】 MPLS基于(1)进行转发&#xff0c;进行MPLS标签交换和报文转发的网络设备称为(2)&#xff0c;构成MPLS域(MPSDomain)。位于MPLS域边缘、连接其他网络的LSR称为(3),区域内部的LSR称为核心LSR(CoreLSR)IP报文进入MPLS网络时&#xf…

LLM4Decompile——专门用于反编译的大规模语言模型

概述 论文地址&#xff1a;https://arxiv.org/abs/2403.05286 反编译是一种将已编译的机器语言或字节码转换回原始高级编程语言的技术。该技术用于分析软件的内部工作原理&#xff0c;尤其是在没有源代码的情况下&#xff1b;Ghidra 和 IDA Pro 等专用工具已经开发出来&#…