我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

    下载Word文档

    猜你喜欢

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

    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、
    2023-08-17

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录