首页 > 其他分享 >SpringBoot 集成 MybatisPlus 六——ActiveRecord 增、删、改

SpringBoot 集成 MybatisPlus 六——ActiveRecord 增、删、改

时间:2023-04-11 23:31:58浏览次数:34  
标签:MybatisPlus SpringBoot 记录 ActiveRecord String user res ID User

1 向表中插入记录

1.1 插入所有列

在创建实体对象时,指定所有字段的内容,包括ID列。

@Test
public void testAddUser(){
    User user = new User(20, "成吉思汗", "男", "一代天骄");
    boolean res = user.insert();
    System.out.println(res);
}

调用 MyBatis Plus 时,后台执行的SQL如下:

==>  Preparing: INSERT INTO user ( id, username, gendar, remark ) VALUES ( ?, ?, ?, ? )

==> Parameters: 20(Integer), 成吉思汗(String), 男(String), 一代天骄(String)

<==    Updates: 1

SpringBoot 集成 MybatisPlus 六——ActiveRecord 增、删、改_System

1.2 插入非自动增长列

在创建实体对象时,仅指定非ID字段的内容,因为我们的ID列设置了自动增长,因些在插入数据时不需要指定内容。

@Test
public void testAddUser2(){
    User user = new User();
    user.setUsername("李世民");
    user.setGendar("男");
    user.setRemark("唐太宗");
    boolean res = user.insert();
    System.out.println(res);
}

调用 MyBatis Plus 时,后台执行的SQL如下:

==>  Preparing: INSERT INTO user ( username, gendar, remark ) VALUES ( ?, ?, ? )

==> Parameters: 李世民(String), 男(String), 唐太宗(String)

<==    Updates: 1

SpringBoot 集成 MybatisPlus 六——ActiveRecord 增、删、改_User_02

2 修改记录

2.1 根据ID修改记录

在创建对象时,需要指定ID,及想要修改后的内容即可。

如要修改ID为21的记录,修改 remark 内容改为“唐宗宋祖”:

@Test
public void testUpdateUserByID(){
    User user = new User();
    user.setRemark("唐宗宋祖");
    user.setId(21);
    boolean res = user.updateById();
    System.out.println(res);
}

调用 MyBatis Plus 时,后台执行的SQL如下:

==>  Preparing: UPDATE user SET remark=? WHERE id=?

==> Parameters: 唐宗宋祖(String), 21(Integer)

<==    Updates: 1

SpringBoot 集成 MybatisPlus 六——ActiveRecord 增、删、改_System_03

注意:

通过ID修改记录时:

  • 如果设置的ID不存在,并不会报错,只是修改成功的记录数为0;

==>  Preparing: UPDATE user SET remark=? WHERE id=?

==> Parameters: 唐宗宋祖(String), 22(Integer)

<==    Updates: 0

  • 如果在对象中没有设置ID值,将会报错:

updateById primaryKey is null.


3 删除记录

3.1 根据ID删除记录

3.1.1 在程序中指定要删除的记录ID

创建的对象中没有设置任何属性,但是在删除记录时,需要使用有参方法 deleteById(Serializable id) 指定记录ID进行删除:

@Test
pubjlic void testDeleteUserByID(){
    User user = new User();
    boolean res = user.deleteById(21);
    System.out.println(res);
}

3.1.2 在对象中设置要删除的记录ID

在创建的实体对象中,设置了记录的ID,此时可以调用无参方法 deleteById()删除记录。

@Test
public void testDeleteUserByID2(){
    User user = new User();
    user.setId(21);
    boolean res = user.deleteById();
    System.out.println(res);
}

3.1.3 异常

如果在使用该方法删除记录时,无论通过哪种方法,都没有指定要删除记录的ID,程序在执行后,将报错,信息如下:

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: deleteById primaryKey is null.


标签:MybatisPlus,SpringBoot,记录,ActiveRecord,String,user,res,ID,User
From: https://blog.51cto.com/u_113754/6183974

相关文章

  • SpringBoot实现文件图片上传并转换为虚拟路径
    页面代码<!DOCTYPEhtml><htmllang="en"xmlns:th="http://www.thymeleaf.org"><head><metacharset="UTF-8"><title>Title</title></head><body><formaction="/putpic......
  • skywalking 监控 springboot项目
     部署探针打开idea开发工具Run-》EditConfigurations点击Modifyoptions-》AddVMoption-javaagent:E:\projectdeploy\apache-skywalking-apm-9.2.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar-Dskywalking.agent.service_name=service-mylesson-jav......
  • Springboot集成dubbo完整过程(三)
    准备工作1,准备mysql服务环境2,准备redis服务环境3,准备zookeeper服务环境4,准备逆向生成bean的xml配置文件5,准备slf4j日志xml配置文件6,准备一个sql脚本1,搭建创建服务工程1,创建一个空的父工程,用来统一管理依赖2,创建一个interface接口工程,主要存放业务bean,接口类3,创建一......
  • #yyds干货盘点 springboot和vue搭建前后端项目实现员工的增删改查
    前言我是歌谣今天继续带来前后端项目的开发上次已经开发了部门管理,今天继续开发员工管理后端第一步empcontroller代码packagecom.itheima.controller;importcom.itheima.pojo.Emp;importcom.itheima.pojo.PageBean;importcom.itheima.pojo.Result;importcom.itheima.s......
  • SpringBoot整合ElasticSearch8.x 踩坑记录
    背景jdk版本openjdk-17springboot版本2.6.11pom.xml<!--ElasticSearch提供的依赖--><dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.6.2</version>......
  • 自定义SpringBoot Starter
    1.Starter加载原理Springboot通过SpringBootApplication注解启动项目,springboot启动的时候,会将项目中所有声明为bean对象的实例加载到IOC容器。除此之外也会将starter里的bean信息加载到ioc容器,从而做到0配置,开箱即用。1.1加载starter:Springboot项目启动时,Springboot通过@Spri......
  • SpringBoot---文件上传
    静态资源访问使用IDEA创建SPringBoot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下即可。如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略。在application.properties中直接定义过滤规则和静态资源位置:spring.mvc.stati......
  • Springboot报错:Could not resolve view with name 'index' in servlet with name 'dis
    该异常是因为用定义了带@EnableWebMvc注解的配置类后发生的,在带该注解的配置类中加入下面的代码就可以了:@BeanpublicInternalResourceViewResolverviewResolver(){InternalResourceViewResolverviewResolver=newInternalResourceViewResolver();viewResolver.......
  • SpringBoot线程池和Java线程池的实现原理
    使用默认的线程池方式一:通过@Async注解调用publicclassAsyncTest{@Asyncpublicvoidasync(Stringname)throwsInterruptedException{System.out.println("async"+name+""+Thread.currentThread().getName());Thread.sleep(10......
  • SpringBoot 集成 MybatisPlus 五——ActiveRecord
    1什么是ActiveRecordActiveRecord(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。在ActiveRecord模式中,对象中既有持久存储的数据,也有针对数据的操作,ActiveRecord模式把数据增删改查的逻辑作为对象的一......