springboot业务层service开发全过程(以mybatis-plus为例)

在配置完数据层Dao/Mapper层的基础上,接下来我们要开始实现业务层的开发。

数据层和业务层的区别:

简单来说业务层是数据层的一个升级,从名字上也可以看出,数据层要想查询一个ID,都是需要定义SelectById这样的名称,但是在业务层直接就是GetById这种,只要结果,就跟主管一样,只要结果,干活的事情交给数据层去做了。

第一部分:在service包下新建实体类和接口

(1)FuelService接口

package com.example.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.domain.Fuel;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ServiceTests {
    @Autowired
    private FuelService fuelService;
    @Test
    void contextLoads1() {
        //测试添加
        Fuel fuel=new Fuel(100L,"周煤",1.1,1.1,1.1,1.1,1.1,1.1);
        fuelService.save(fuel);
    }
    @Test
    void contextLoads2() {
        //测试更新
        Long id=100L;
        Fuel fuel=fuelService.getById(id);
        fuel.setFossilEnergyType("周1煤");
        fuelService.update(fuel);
    }
    @Test
    void contextLoads3() {
        //测试删除
        Long id=100L;
        fuelService.delete(id);
    }
    @Test
    void contextLoads4() {
        //测试根据id查询
        Long id=100L;
        fuelService.getById(id);
    }
    @Test
    void contextLoads5() {
        //测试查询全部
        fuelService.getAll();
    }
    @Test
    void contextLoads6() {
        //分页查询
        //分页
        IPage page=fuelService.getPage(2,5);//查询第二页,每页展示条数据
        page.getCurrent();//第二页
        //获取一页展示多少个数据
        page.getSize();
        //查询总共有多少条数据
        page.getTotal();
        //查询一共能够有多少页
        page.getPages();

        //列表形式,也就是查询到的数据
        page.getRecords();

        //输出
        System.out.println("当前页:"+page.getCurrent());
        System.out.println("每一页展示的数据量:"+page.getSize());
        System.out.println("总数据量"+page.getTotal());
        System.out.println("总页数"+page.getPages());
        System.out.println("所有数据:"+page.getRecords());
    }
    @Test
    void contextLoads7() {
        //条件查询-我们查询fossilEnergyType属性类别数据中含有“煤”的数据条
        String SearchName="煤";
        LambdaQueryWrapper<Fuel> wrapper=new LambdaQueryWrapper<>();
        if(SearchName!=null) {//避免查询的字段为null名字的字段
            wrapper.like(Fuel::getFossilEnergyType, SearchName);//第一个是属性名字,第二个是我们输入要like的内容
        }
        fuelService.getLikeAll(wrapper);
    }

}

(2)FuelServiceImpl实现类

package com.example.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.domain.Fuel;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ServiceTests {
    @Autowired
    private FuelService fuelService;
    @Test
    void contextLoads1() {
        //测试添加
        Fuel fuel=new Fuel(100L,"周煤",1.1,1.1,1.1,1.1,1.1,1.1);
        fuelService.save(fuel);
    }
    @Test
    void contextLoads2() {
        //测试更新
        Long id=100L;
        Fuel fuel=fuelService.getById(id);
        fuel.setFossilEnergyType("周1煤");
        fuelService.update(fuel);
    }
    @Test
    void contextLoads3() {
        //测试删除
        Long id=100L;
        fuelService.delete(id);
    }
    @Test
    void contextLoads4() {
        //测试根据id查询
        Long id=100L;
        fuelService.getById(id);
    }
    @Test
    void contextLoads5() {
        //测试查询全部
        fuelService.getAll();
    }
    @Test
    void contextLoads6() {
        //分页查询
        //分页
        IPage page=fuelService.getPage(2,5);//查询第二页,每页展示条数据
        page.getCurrent();//第二页
        //获取一页展示多少个数据
        page.getSize();
        //查询总共有多少条数据
        page.getTotal();
        //查询一共能够有多少页
        page.getPages();

        //列表形式,也就是查询到的数据
        page.getRecords();

        //输出
        System.out.println("当前页:"+page.getCurrent());
        System.out.println("每一页展示的数据量:"+page.getSize());
        System.out.println("总数据量"+page.getTotal());
        System.out.println("总页数"+page.getPages());
        System.out.println("所有数据:"+page.getRecords());
    }
    @Test
    void contextLoads7() {
        //条件查询-我们查询fossilEnergyType属性类别数据中含有“煤”的数据条
        String SearchName="煤";
        LambdaQueryWrapper<Fuel> wrapper=new LambdaQueryWrapper<>();
        if(SearchName!=null) {//避免查询的字段为null名字的字段
            wrapper.like(Fuel::getFossilEnergyType, SearchName);//第一个是属性名字,第二个是我们输入要like的内容
        }
        fuelService.getLikeAll(wrapper);
    }

}

整体结构为:

(3)测试部分代码

package com.example.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.domain.Fuel;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ServiceTests {
    @Autowired
    private FuelService fuelService;
    @Test
    void contextLoads1() {
        //测试添加
        Fuel fuel=new Fuel(100L,"周煤",1.1,1.1,1.1,1.1,1.1,1.1);
        fuelService.save(fuel);
    }
    @Test
    void contextLoads2() {
        //测试更新
        Long id=100L;
        Fuel fuel=fuelService.getById(id);
        fuel.setFossilEnergyType("周1煤");
        fuelService.update(fuel);
    }
    @Test
    void contextLoads3() {
        //测试删除
        Long id=100L;
        fuelService.delete(id);
    }
    @Test
    void contextLoads4() {
        //测试根据id查询
        Long id=100L;
        fuelService.getById(id);
    }
    @Test
    void contextLoads5() {
        //测试查询全部
        fuelService.getAll();
    }
    @Test
    void contextLoads6() {
        //分页查询
        //分页
        IPage page=fuelService.getPage(2,5);//查询第二页,每页展示条数据
        page.getCurrent();//第二页
        //获取一页展示多少个数据
        page.getSize();
        //查询总共有多少条数据
        page.getTotal();
        //查询一共能够有多少页
        page.getPages();

        //列表形式,也就是查询到的数据
        page.getRecords();

        //输出
        System.out.println("当前页:"+page.getCurrent());
        System.out.println("每一页展示的数据量:"+page.getSize());
        System.out.println("总数据量"+page.getTotal());
        System.out.println("总页数"+page.getPages());
        System.out.println("所有数据:"+page.getRecords());
    }
    @Test
    void contextLoads7() {
        //条件查询-我们查询fossilEnergyType属性类别数据中含有“煤”的数据条
        String SearchName="煤";
        LambdaQueryWrapper<Fuel> wrapper=new LambdaQueryWrapper<>();
        if(SearchName!=null) {//避免查询的字段为null名字的字段
            wrapper.like(Fuel::getFossilEnergyType, SearchName);//第一个是属性名字,第二个是我们输入要like的内容
        }
        fuelService.getLikeAll(wrapper);
    }

}

(1)测试新建

测试代码:


    @Test
    void contextLoads1() {
        //测试添加
        Fuel fuel=new Fuel(100L,"周煤",1.1,1.1,1.1,1.1,1.1,1.1);
        fuelService.save(fuel);
    }

测试结果:

(2)测试修改

测试代码:

@Test
    void contextLoads2() {
        //测试更新
        Long id=100L;
        Fuel fuel=fuelService.getById(id);
        fuel.setFossilEnergyType("周1煤");
        fuelService.update(fuel);
    }

测试结果:

(3)测试删除

测试代码:

  @Test
    void contextLoads3() {
        //测试删除
        Long id=100L;
        fuelService.delete(id);
    }

测试结果:

(4)测试按照id查询

测试代码:

@Test
    void contextLoads4() {
        //测试根据id查询
        Long id=100L;
        fuelService.getById(id);
    }

测试结果:

(5)测试查询全部

测试代码:

 @Test
    void contextLoads5() {
        //测试查询全部
        fuelService.getAll();
    }

测试结果:

(6)测试分页查询

测试代码:

 @Test
    void contextLoads6() {
        //分页查询
        //分页
        IPage page=fuelService.getPage(2,5);//查询第二页,每页展示条数据
        page.getCurrent();//第二页
        //获取一页展示多少个数据
        page.getSize();
        //查询总共有多少条数据
        page.getTotal();
        //查询一共能够有多少页
        page.getPages();

        //列表形式,也就是查询到的数据
        page.getRecords();

        //输出
        System.out.println("当前页:"+page.getCurrent());
        System.out.println("每一页展示的数据量:"+page.getSize());
        System.out.println("总数据量"+page.getTotal());
        System.out.println("总页数"+page.getPages());
        System.out.println("所有数据:"+page.getRecords());
    }

测试结果:

(7)测试条件查询

测试代码:

 @Test
    void contextLoads7() {
        //条件查询-我们查询fossilEnergyType属性类别数据中含有“煤”的数据条
        String SearchName="煤";
        LambdaQueryWrapper<Fuel> wrapper=new LambdaQueryWrapper<>();
        if(SearchName!=null) {//避免查询的字段为null名字的字段
            wrapper.like(Fuel::getFossilEnergyType, SearchName);//第一个是属性名字,第二个是我们输入要like的内容
        }
        fuelService.getLikeAll(wrapper);
    }

测试结果:

文件获取:

①数据库

链接:https://pan.baidu.com/s/1edTUrhnzfp1gkDuq0wptJw?pwd=uxbh 
提取码:uxbh 
--来自百度网盘超级会员V5的分享

②源文件

链接:https://pan.baidu.com/s/1ozBWoj86Z0QDiimpcs6UUw?pwd=2umt 
提取码:2umt 
--来自百度网盘超级会员V5的分享

运行我打包的项目,为了能够正常运行(需要兼容maven以及java版本),具体的调整方法看我博客:http://t.csdnimg.cn/Uovig

好啦,希望能够帮助到大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还不秃顶的计科生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值