当前位置: 首页 > news >正文

基于SpringBoot的SSMP整合案例(业务层基础开发与快速开发)

业务层基础开发

接口类
public interface BookService {boolean save(Book book);boolean update(Book book);boolean delete(Integer id);Book getById(Integer id);List<Book> getAll();IPage<Book> getByPage(int currentPage,int pageSize);IPage<Book> getByPage(int pages, Integer pageSize, Book book);
}
接口类实现类
@Service
public class BookServiceImpl implements BookService {@AutowiredBookDao 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> getByPage(int currentPage, int pageSize) {IPage page = new Page(currentPage,pageSize);bookDao.selectPage(page,null);return page;}//    条件查询@Overridepublic IPage<Book> getByPage(int currentPage, Integer pageSize, Book book) {LambdaQueryWrapper<Book> lqw = new LambdaQueryWrapper<>();
//        第一个参数:带不带它玩,第二个参数:具体是哪个属性,第三个参数:具体参数值lqw.like(Strings.isNotEmpty(book.getType()),Book::getType,book.getType());lqw.like(Strings.isNotEmpty(book.getName()),Book::getName,book.getName());lqw.like(Strings.isNotEmpty(book.getDescription()),Book::getDescription,book.getDescription());IPage page = new Page(currentPage,pageSize);bookDao.selectPage(page,lqw);return page;}
}
上面的其他业务方法很好理解,这里分析一下条件查询

在这里插入图片描述

分析点1

上图是条件查询的界面,当我们在框中输入查询条件,并点击查询后,输入框的数据会以追加的形式追加到网址的后面(像?a=b&b=c.....),在
springmvc中有一个知识点,我们可以设置一个bean对象,对象的参数要和发送的参数一致,这样前端传送的参数可以被对象直接收到,而不需
要我们一个一个接收。
这也是上面条件查询中第三个参数为什么传了一个book对象。

分析点2

LambdaQueryWrapper的like方法,该like方法有三个参数,第一个参数类型为Boolean,当值为true时,后面的类型参与模糊查询。
当值为false时,后面的类型则不参与模糊查询。
第二个参数为数据库中的字段(也是查询实体类的对应属性),就是select * ...... where a like b;中的a
第三个参数是具体的属性值。就是select * ...... where a like b;中的b

业务层快速开发

使用快速开发,就是使用MyBatisPlus提供的接口,来实现简单的增删查改,复杂的功能追加即可。

快速开发方案使用MyBatisPlus提供有业务层通用接口(ISerivce<T>)与业务层通用实现类(ServiceImpl<M,T>)在通用类基础上做功能重载或功能追加注意重载时不要覆盖原始操作,避免原始提供的功能丢失具体代码如下
public interface IBookService extends IService<Book> {
}
实现类
@Service
public class IBookServiceImpl extends ServiceImpl<BookDao, Book> implements IBookService {
}
上面代码没有自定义的方法,全部使用mp提供的。
可以看出我们什么都没有写,却可以实现基础的增删查改,与条件查询。
注意:我们在写我们自己的业务方法时,方法名不要和mp的一样,不然会覆盖,使得原功能丢失。
以下是mp提供的部分方法

在这里插入图片描述

业务层结束,仅为学习过程中,相关知识点总结,如有问题,欢迎指正~
http://www.lryc.cn/news/233019.html

相关文章:

  • [Android]创建TabBar
  • UE5 UMG InvalidationBox和RetainerBox
  • HT16C23字段式驱动显示芯片替代PC16C23
  • 电力感知边缘计算网关产品设计方案-设计背景和设计思路
  • Python武器库开发-flask篇之模板渲染(二十四)
  • pdb restore in ADG database
  • 科创人·蓝凌董事长杨健伟:夯实“四梁八柱”,让数字化“城中村上建高楼”
  • Flink SQL --Flink 整合 hive
  • demo(一)eureka----服务注册与提供
  • core dump(介绍,status中的core dump标志,应用--调试),ulimit命令
  • 使用键盘管理器更改键盘快捷键,让键盘真正迎合你的使用习惯
  • putty保存登录账号和密码
  • GRS认证是什么认证为何如此重要
  • 基于pytest-bdd的项目目录结构和命名规范
  • web前端开发网页设计课堂作业/html练习《课程表》
  • 用欧拉路径判断图同构推出reverse合法性:1116T4
  • 高阶数据结构---树状数组
  • 如何保护PayPal账户安全:防止多个PayPal账号关联?
  • 关于 Spring :松耦合、可配置、IOC、AOP
  • pytorch tensor数据类型转换为python数据
  • HarmonyOS开发:动态共享包的依赖问题
  • 中睿天下加入中关村华安关键信息基础设施安全保护联盟
  • 【c++STL算数仿函数,关系仿函数,逻辑仿函数】
  • 产品经理的能力模型是什么?
  • 缓存和DB一致性
  • netty websockt之断连重试
  • 【Gateway】基于ruoyi-cloud-plus项目,gateway局部过滤器和过滤返回以及集成nacos
  • mysql -mmm
  • C++初阶 类和对象(下)
  • 使用Postman进行压力测试