首页 > 其他分享 >Mybatis-Plus基本CRUD——通用Service

Mybatis-Plus基本CRUD——通用Service

时间:2023-05-07 19:12:08浏览次数:37  
标签:IService Service Parameters CRUD Long Plus user String

通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行 remove 删 除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆。

MyBatis-Plus中有一个接口 IService和其实现类 ServiceImpl,封装了常见的业务层逻辑。

创建Service 接口和实现类

IUserService

/**
 *  IUserService继承IService模板提供的基础功能
 */
public interface IUserService extends IService<User> {
}

UserServiceImpl

/**
 * ServiceImpl实现了IService,提供了IService中基础功能的实现
 * 若ServiceImpl无法满足业务需求,则可以使用自定的UserService定义方法,并在实现类中实现
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
}

测试查询记录数

@Resource
private IUserService userService;

@Test
public void testGetCount(){
    //SELECT COUNT( * ) FROM user
    long count = userService.count();
    System.out.println("总记录数:" + count);
}

测试批量插入

@Test
public void testSaveBatch(){
    // SQL长度有限制,海量数据插入单条SQL无法实行,
    // 因此MP将批量插入放在了通用Service中实现,而不是通用Mapper
    ArrayList<User> users = new ArrayList<>();
    for (int i = 0; i < 5; i++) {
        User user = new User();
        user.setName("ybc" + i);
        user.setAge(20 + i);
        users.add(user);
    }
    //SQL:INSERT INTO t_user ( username, age ) VALUES ( ?, ? )
    //==> Parameters: 1655161629217820674(Long), ybc0(String), 20(Integer)
    //==> Parameters: 1655161629297512450(Long), ybc1(String), 21(Integer)
    //==> Parameters: 1655161629297512451(Long), ybc2(String), 22(Integer)
    //==> Parameters: 1655161629297512452(Long), ybc3(String), 23(Integer)
    //==> Parameters: 1655161629297512453(Long), ybc4(String), 24(Integer)
    //执行了5次插入,批量插入其实是循环添加数据
    userService.saveBatch(users);
}

标签:IService,Service,Parameters,CRUD,Long,Plus,user,String
From: https://www.cnblogs.com/1963942081zzx/p/17379836.html

相关文章

  • Mybatis-Plus基本CRUD——通用Mapper
    BaseMapper接口MyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现,我们可以直接使用,接口如下:/***Mapper继承该接口后,无需编写mapper.xml文件,即可获得CRUD功能*<p>这个Mapper支持id泛型</p>**@authorhubin*@since2016-01-23*/publicinter......
  • Mybatis-Plus 简介及入门案例
    Mybatis简介MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。官网地址:https://www.baomidou.com/特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本CURD,性能基本......
  • 在vue3中使用elementPlus的el-select时样式穿透问题
    下拉框的option样式只能在全局样式里改,千万不能用scope,否则不生效<el-selectclass="select":popper-append-to-body="false"v-model="selectValue"placeholder="请选择"popper-class="select-option"><......
  • MyBatis-02CRUD操作及配置解析01
    上集回顾:第一个程序namespace将上面案例中的UserMapper接口改名为UserDao;将UserMapper.xml中的namespace改为为UserDao的路径.再次测试结论:配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!1CRUD操作及配置解析1.1selectselect标......
  • WEB|[FBCTF2019]RCEService
    页面提示输入json格式的命令{"cmd":"ls"}输入ls命令查看当前目录文件,当前目录仅有index.php文件读取index.php文件,发现被检测到{"cmd":"cat./index.php"}经过测试发现很多命令和符号都被过滤,自己是没有做出来,在看别人的wp时发现他们不知道从哪里找到的源码源码<?ph......
  • mybatis-plus-generator生成代码
    mybatis-plus-generator生成代码依赖包 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.6</version></dependenc......
  • k8s 建service
    root@myang-node:~/ingress-nginx#kubectlcreatedeploybackend-api--image=registry.cbeijing.aliyuncs.com/dotbalo/nginx:backend-api-nstudy-ingressdeployment.apps/backend-apicreatedroot@myang-node:~/ingress-nginx#kubectlexposedeploybackend-api-......
  • 4-2 UserDetails、UserDetailsService和jdbcAuthentication
          ......
  • Prometheus-Operator使用ServiceMonitor监控配置时遇坑与解决总结
    摘要本文范围:Prometheus-Operator&kube-prometheus安装;以及在解决使用ServiceMonitor时遇到的坑。PrometheusOperator简介随着云原生概念盛行,对于容器、服务、节点以及集群的监控变得越来越重要。Prometheus作为Kubernetes监控的事实标准,有着强大的功能和良好的生态......
  • 基于SqlSugar的开发框架循序渐进介绍(29)-- 快速构建系统参数管理界面-Vue3+ElementPlus
    在随笔《基于SqlSugar的开发框架循序渐进介绍(28)--快速构建系统参数管理界面》中介绍了基于SqlSugar开发框架,构建系统参数管理的后端API部分,以及WInform界面部分内容,本篇随笔介绍基于Vue3+ElementPlus的前端界面开发过程。1、Winform端界面的回顾系统参数的信息,设计为包含一个大......