小工具知识网

当前位置: 首页 > 行业知识 > IService接口和ServiceImpl实现类(Mybatis-Plus对service层的封装)

行业知识

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

2026-11-12 08:03:52 来源:互联网转载

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、查询记录数

            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、新增
            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);}
            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);}
            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);}
            3.2.2、查询
            1、单行查询
            1. 根据id查询

              @Testpublic void testServcie(){    User user = userService.getById(1);    System.out.println(user);}
            2、多行查询
            1. 根据ID批量查询

              @Testpublic void testServcie(){    List list = Arrays.asList(1, 2, 3);    List users = userService.listByIds(list);    users.forEach(System.out::println);}
            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);}
            3.2.3、删除
            1. 根据id删除

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

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

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

              @Testpublic void testServcie(){    Map map = new HashMap();    map.put("username","批量增加5");    map.put("password","123");    boolean b = userService.removeByMap(map);}
            3.2.4、修改
            1. 根据ID修改

              @Testpublic void testServcie(){    User user = userService.getById(27);    user.setUsername("修改1");    user.setPassword("213123");    boolean b = userService.updateById(user);}
            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);}
            3.2.5、修改或更新
            3.2.6、分页

            在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() {    }    /**     * 有参构造函数     * @param current 当前页     * @param size    每页显示条数     */    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  
            • 配置

              • 使用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);}
                3.2.7、查询记录数
                @Testpublic void testServcie(){    long count = userService.count();    System.out.println(count);}

上一篇:报错“Host is blocked because of many connection errors”处理

下一篇:电影下载指南,步骤与技巧