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

业务层基础开发

复制代码
接口类
java 复制代码
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);
}
复制代码
接口类实现类
java 复制代码
@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

复制代码
上图是条件查询的界面,当我们在框中输入查询条件,并点击查询后,输入框的数据会以追加的形式追加到网址的后面(像?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>)
 在通用类基础上做功能重载或功能追加
 注意重载时不要覆盖原始操作,避免原始提供的功能丢失
 具体代码如下
java 复制代码
public interface IBookService extends IService<Book> {
}
复制代码
实现类
java 复制代码
@Service
public class IBookServiceImpl extends ServiceImpl<BookDao, Book> implements IBookService {
}
复制代码
上面代码没有自定义的方法,全部使用mp提供的。
可以看出我们什么都没有写,却可以实现基础的增删查改,与条件查询。
注意:我们在写我们自己的业务方法时,方法名不要和mp的一样,不然会覆盖,使得原功能丢失。
以下是mp提供的部分方法
复制代码
业务层结束,仅为学习过程中,相关知识点总结,如有问题,欢迎指正~
相关推荐
清风92001 分钟前
Logback——日志技术(基础)
java·前端·logback
晓13133 分钟前
JavaScript加强篇——第五章 DOM节点(加强)与BOM
java·开发语言·javascript
Skrrapper6 分钟前
Flask 入门到实战(2):使用 SQLAlchemy 打造可持久化的数据层
后端·python·flask
程序猿零零漆9 分钟前
飞算JavaAI:革新Java开发的智能助手
java·飞算javaai
万能小锦鲤21 分钟前
《Java EE与中间件》实验三 基于Spring Boot框架的购物车
java·spring boot·mysql·实验报告·购物车·文档资源·java ee与中间件
麦兜*33 分钟前
【Spring Boot】Spring Boot 4.0 的颠覆性AI特性全景解析,结合智能编码实战案例、底层架构革新及Prompt工程手册
java·人工智能·spring boot·后端·spring·架构
江南一点雨34 分钟前
ChatGPT,从规则到强化学习
后端
用户92724725021936 分钟前
实现新闻自动采集并发布到博客
后端
野犬寒鸦42 分钟前
MyBatis-Plus 中使用 Wrapper 自定义 SQL
java·数据库·后端·sql·mybatis
expect7g1 小时前
Java的DNS缓存问题
java·后端