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接口文件,如下图所示:

代码如下图所示:

java 复制代码
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实现类文件,如下图所示:

代码如下图所示:

java 复制代码
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 {
    @Autowired
    private 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> getPage(Integer currentPage, Integer pageSize) {
        IPage page = new Page(currentPage,pageSize);
        return bookDao.selectPage(page,null);
    }
}

1.3测试类定义

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

代码如下图所示:

java 复制代码
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 {
    @Autowired
    private BookService bookService;

    @Test
    void testGetById()
    {
        System.out.println(bookService.getById(1));
    }

    @Test
    void testSave() {
        Book book = new Book();
        book.setType("历史");
        book.setName("历史的温度");
        book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");
        bookService.save(book);

    }

    @Test
    void testGetAll()
    {
        System.out.println(bookService.getAll());
    }


    @Test
    void testUpdate(){
        Book book = new Book();
        book.setId(7);
        book.setType("历史");
        book.setName("历史的温度1");
        book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");
        System.out.println(bookService.update(book));

    }

    @Test
    void testDelete()
    {
        bookService.delete(15);
    }

    @Test
    void 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>)

接口定义:

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

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

java 复制代码
package com.summer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.summer.domain.Book;

public interface IBookService extends IService<Book> {


}

实现类定义:

java 复制代码
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 {
}

测试类:

java 复制代码
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 {
    @Autowired
    private IBookService bookService;

    @Test
    void testGetById()
    {
        System.out.println(bookService.getById(1));
    }

    @Test
    void testSave() {
        Book book = new Book();
        book.setType("历史");
        book.setName("历史的温度");
        book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");
        bookService.save(book);

    }

    @Test
    void testGetAll()
    {
        System.out.println(bookService.list());
    }


    @Test
    void testUpdate(){
        Book book = new Book();
        book.setId(7);
        book.setType("历史");
        book.setName("历史的温度1");
        book.setDescription("通过讲述历史人物的故事,展现了历史的温情和人性的光辉");
        System.out.println(bookService.updateById(book));

    }

    @Test
    void testDelete()
    {

        bookService.removeById(16);
    }

    @Test
    void 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在通用类基础上做功能重载或功能追加

接口定义

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

java 复制代码
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);
}
  • 实现类定义:
java 复制代码
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 {
    @Autowired
    private 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.注意重载时不要覆盖原始操作,避免原始提供的功能丢失

相关推荐
odng1 分钟前
IDEA自己常用的几个快捷方式(自己的习惯)
java·ide·intellij-idea
CT随9 分钟前
Redis内存碎片详解
java·开发语言
brrdg_sefg18 分钟前
gitlab代码推送
java
hanbarger41 分钟前
mybatis框架——缓存,分页
java·spring·mybatis
cdut_suye1 小时前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
苹果醋31 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
azhou的代码园1 小时前
基于JAVA+SpringBoot+Vue的制造装备物联及生产管理ERP系统
java·spring boot·制造
wm10432 小时前
java web springboot
java·spring boot·后端
smile-yan2 小时前
Provides transitive vulnerable dependency maven 提示依赖存在漏洞问题的解决方法
java·maven