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


    业务层基础开发

    接口类
    
    • 1
    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);
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    接口类实现类
    
    • 1
    @Service
    public class BookServiceImpl implements BookService {
    
        @Autowired
        BookDao bookDao;
    
        @Override
        public boolean save(Book book) {
            return bookDao.insert(book) > 0;
        }
    
        @Override
        public boolean update(Book book) {
            return bookDao.updateById(book) > 0;
        }
    
        @Override
        public boolean delete(Integer id) {
            return bookDao.deleteById(id) > 0;
        }
    
        @Override
        public Book getById(Integer id) {
            return bookDao.selectById(id);
        }
    
        @Override
        public List<Book> getAll() {
            return bookDao.selectList(null);
        }
    
    //    分页查询
        @Override
        public IPage<Book> getByPage(int currentPage, int pageSize) {
            IPage page = new Page(currentPage,pageSize);
            bookDao.selectPage(page,null);
            return page;
        }
    
    //    条件查询
        @Override
        public 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    上面的其他业务方法很好理解,这里分析一下条件查询
    
    • 1

    在这里插入图片描述

    分析点1

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

    分析点2

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

    业务层快速开发

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

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

    在这里插入图片描述

    业务层结束,仅为学习过程中,相关知识点总结,如有问题,欢迎指正~
    
    • 1
  • 相关阅读:
    Jmeter性能测试
    java毕业设计基于javaweb+mysql数据库实现的在线学习网站|在线课堂含论文+开题报告
    聚类分类应用题
    SpringMvc+Shiro有时候shiro取不到用户名
    Vue3的12种组件通信方式(附代码)
    [MySQL]二、进程的关系、MySQL密码破解、建表和建库相关命令
    神经网络算法有哪些模型,神经网络预测模型实例
    html实现爱情浪漫表白甜蜜时刻(附源码)
    Linux系统Word转换PDF,文档字体乱码不显示问题解决。
    全球名校AI课程库(45)| AMMI · 几何深度学习课程『Geometric Deep Learning』
  • 原文地址:https://blog.csdn.net/qq_63524487/article/details/134462397