iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >IService接口和ServiceImpl实现类(Mybatis-Plus对service层的封装)
  • 113
分享到

IService接口和ServiceImpl实现类(Mybatis-Plus对service层的封装)

mybatisjavaspring 2023-08-17 08:08:45 113人浏览 薄情痞子
摘要

Java知识点总结:想看的可以从这里进入 目录 3.2、IService接口3.2.1、新增3.2.2、查询1、单行查询2、多行查询 3.2.3、删除3.2.4、修改3.2.5、修改或更新3.2.6、分页3.2.7、

Java知识点总结:想看的可以从这里进入

3.2、IService接口

BaseMapper 是用在Mapper中,而IService是在Service层使用的封装接口,它进一步封装 CRUD 。为了和BaseMapper 中方法进行区分,它采用了不同的前缀:

  1. get 查询单行
  2. remove 删除
  3. list 查询集合
  4. page 分页
  5. save新增
  6. update修改

IService还有一个实现的类ServiceImpl,在使用使用时分别对应service接口和impl实现类。

public interface UserService extends IService {}
@Servicepublic class UserServiceImpl extends ServiceImpl implements UserService {}

3.2.1、新增

image-20230306112657281
  1. 新增一条记录

    @Resourceprivate UserService userService;@Testpublic void testServcie(){    User user  = new User();    user.setUsername("service增加");    user.setPassword("12321");    boolean save = userService.save(user);    System.out.println("是否成功:"+save);}
    image-20230306113912564
  2. 批量操作

    @Resourceprivate UserService userService;@Testpublic void testServcie(){    List users = new ArrayList<>();    User user1 = new User("批量增加1","123");    users.add(user1);    User user2 = new User("批量增加2","123");    users.add(user2);    User user3 = new User("批量增加3","123");    users.add(user3);    User user4 = new User("批量增加4","123");    users.add(user4);    User user5 = new User("批量增加5","123");    users.add(user5);    boolean save = userService.saveBatch(users);    System.out.println("是否成功:"+save);}
    image-20230306114731705
  3. 设置批次数量

    public void testServcie(){    List users = new ArrayList<>();    User user1 = new User("指定数量批量增加6","123");    users.add(user1);    User user2 = new User("指定数量批量增加7","123");    users.add(user2);    User user3 = new User("指定数量批量增加8","123");    users.add(user3);    User user4 = new User("指定数量批量增加9","123");    users.add(user4);    User user5 = new User("指定数量批量增加10","123");    users.add(user5);    boolean save = userService.saveBatch(users,2);    System.out.println("是否成功:"+save);}

    image-20230306114954565

3.2.2、查询

1、单行查询

image-20230306123815377

  1. 根据id查询

    @Testpublic void testServcie(){    User user = userService.getById(1);    System.out.println(user);}

    image-20230306124359229

2、多行查询

image-20230306125349084

  1. 根据ID批量查询

    @Testpublic void testServcie(){    List list = Arrays.asList(1, 2, 3);    List users = userService.listByIds(list);    users.forEach(System.out::println);}

    image-20230306124647126

  2. 查询所有

    @Testpublic void testServcie(){    //返回list List list = userService.list();    System.out.println(list);    //返回map    List> maps = userService.listMaps();    System.out.println(maps);    List objects = userService.listObjs();    System.out.println(objects);} 

    image-20230306125554522

    3.2.3、删除

    image-20230306115936178

    1. 根据id删除

      @Testpublic void testServcie(){    boolean b = userService.removeById(21);}
      image-20230306120252382
    2. 根据实体的id删除

      @Testpublic void testServcie(){    User user = userService.getById(22);    boolean b = userService.removeById(user);}
      image-20230306120455791
    3. 批量删除

      @Testpublic void testServcie(){    List list = Arrays.asList(23, 24, 25);    boolean b = userService.removeByIds(list);}
      image-20230306120634151
    4. 根据Map条件删除

      @Testpublic void testServcie(){    Map map = new HashMap<>();    map.put("username","批量增加5");    map.put("passWord","123");    boolean b = userService.removeByMap(map);}
      image-20230306120900709

    3.2.4、修改

    image-20230306121504141

    1. 根据ID修改

      @Testpublic void testServcie(){    User user = userService.getById(27);    user.setUsername("修改1");    user.setPassword("213123");    boolean b = userService.updateById(user);}
      image-20230306121740680
    2. 批量修改

      @Testpublic void testServcie(){    List list = Arrays.asList(28, 29, 30);    List users = userService.listByIds(list);    users.forEach(user -> {        user.setUsername("批量修改");    });    boolean b = userService.updateBatchById(users);}
      image-20230306122251212

    3.2.5、修改或更新

    image-20230306115225586

    3.2.6、分页

    image-20230306125813443

    mybatis-plus中提供了有关分页的接口和实现类 IPage 和 Page

    public class Page implements IPage {    private static final long serialVersionUID = 8545996863226528798L;    //用来存放查询出来的数据    protected List records = Collections.emptyList();    //返回的数据总数    protected long total = 0;    // 每页显示条数,默认 10    protected long size = 10;    //当前页,默认1    protected long current = 1;    // 排序字段信息    @Setter    protected List orders = new ArrayList<>();    //自动优化 COUNT sql    protected boolean optimizeCountSql = true;    // 是否进行 count 查询    protected boolean searchCount = true;      public Page() {    }        public Page(long current, long size) {        this(current, size, 0);    }    public Page(long current, long size, long total) {        this(current, size, total, true);    }    public Page(long current, long size, boolean searchCount) {        this(current, size, 0, searchCount);    }    public Page(long current, long size, long total, boolean searchCount) {        if (current > 1) {            this.current = current;        }        this.size = size;        this.total = total;        this.searchCount = searchCount;    }    //是否存在上一页    public boolean hasPrevious() {        return this.current > 1;    }    //是否存在下一页    public boolean hasNext() {        return this.current < this.getPages();    }    ..........}
    • 配置

      • 使用spring时,在Spring的配置文件中先配置mybatis-plus内置的分页插件

                                                                                                                
      • 使用SpringBoot时配置时,在配置类中配置

        @Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();    interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.Mysql));    return interceptor;}
    • 分页查询数据

      @Testpublic void testServcie(){    Page page = userService.page(new Page<>(1,5));    System.out.println("总数据:"+page.getTotal());    List users = page.getRecords();    users.forEach(System.out::println);}

      image-20230306133721050

    3.2.7、查询记录数

    image-20230306133903188
    @Testpublic void testServcie(){    long count = userService.count();    System.out.println(count);}

    image-20230306134002194

    来源地址:https://blog.csdn.net/yuandfeng/article/details/129660661

    --结束END--

    本文标题: IService接口和ServiceImpl实现类(Mybatis-Plus对service层的封装)

    本文链接: https://www.lsjlt.com/news/372510.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作