MyBatis Plus Mapper CRUD接口测试方式

 更新时间:2024年09月20日 09:06:27   作者:小大宇  
在数据库管理系统中,插入记录是添加新数据条目,而删除操作包括根据主键ID单条删除和批量删除,也可以基于特定条件进行删除,删除操作的SQL语句是通过键值对在Map中拼接而成,如delete from 表 where key1=value1 AND key2=value2

MyBatis Plus Mapper CRUD接口测试

插入

插入一条记录

int insert(T entity);

删除

根据主键ID删除,主键ID支持String、Number类型

int deleteById(Serializable id);

根据主键ID批量删除

int deleteBatchIds(Collection<? extends Serializable> idList);

根据条件进行删除。原理为SQL语句拼接,因此Map中需要传输数据库字段列

实质为 delete from 表 where 【key1 = value1】 AND 【key2 = value2】

【key1-value1】【key2-value2】为Map的键值对

int deleteByMap(Map<String, Object> columnMap);

更新

根据ID更新。null值忽略。

        Employee employee = new Employee();
        employee.setId(7);
        employee.setLastName("a");
        employee.setAge(23);
        employee.setEmail(null);
        employee.setGender(null);
        mapper.updateById(employee);

 UPDATE tb_employee SET last_name='a', age=23
 WHERE id=7;

根据条件更新,null值忽略。

        Employee employee = new Employee();
        employee.setId(7L);
        employee.setLastName("c");
        //这里设置的null,就是说不操作email字段
        employee.setEmail(null);
        employee.setGender(null);
        employee.setAge(23);
        mapper.update(employee, new UpdateWrapper<Employee>().lambda()
                .eq(Employee::getId, 7)
        );

 UPDATE tb_employee SET last_name='c', age=23
 WHERE (id = 7);

定制置空。

        Employee employee = new Employee();
        employee.setId(7L);
        employee.setLastName("c");
        //这里设置的null,就是说不操作email字段
        employee.setEmail(null);
        employee.setGender(null);
        employee.setAge(23);
        mapper.update(employee, new UpdateWrapper<Employee>().lambda()
                .eq(Employee::getId, 7)
                //这里可以定制置空SQL
                .set(Employee::getEmail,null)
                .set(Employee::getGender,"")
        );

 UPDATE tb_employee SET last_name='c', age=23, email=null,gender=''
 WHERE (id = 7);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java8时间转换(LocalDateTime)代码实例

    Java8时间转换(LocalDateTime)代码实例

    这篇文章主要介绍了java8时间转换(LocalDateTime)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • SpringBoot自动装配原理及过程解读

    SpringBoot自动装配原理及过程解读

    文章解析SpringBoot自动装配机制,结合SPI源码分析与手写Starter实践,阐述如何通过ServiceLoader和SpringFactoriesLoader实现服务发现及动态配置加载,并利用条件注解@Conditional进行智能过滤,最终指导开发者自定义Starter并配置属性提示
    2025-09-09
  • 解决idea web项目中out目录更新不同步问题

    解决idea web项目中out目录更新不同步问题

    这篇文章给大家介绍了idea web项目中out(maven中是target)目录更新不同步,导致访问404的问题,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-09-09
  • Java批量转换文件编码格式的实现方法及实例代码

    Java批量转换文件编码格式的实现方法及实例代码

    这篇文章主要介绍了Java实现 批量转换文件编码格式的方法及实例代码,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • java web图片上传和文件上传实例

    java web图片上传和文件上传实例

    本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • IDEA 自动生成 JPA 实体类的图文教程

    IDEA 自动生成 JPA 实体类的图文教程

    这篇文章主要介绍了IDEA 自动生成 JPA 实体类的图文教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 一篇文章带你入门Java数据类型

    一篇文章带你入门Java数据类型

    下面小编就为大家带来一篇Java的基本数据类型)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-08-08
  • Java中的JVM虚拟机内存分配详解

    Java中的JVM虚拟机内存分配详解

    这篇文章主要介绍了Java中的JVM虚拟机内存分配详解,虚拟机是一种能够执行 Java 字节码的虚拟机,它是 Java 语言的核心组成部分,负责将 Java 代码转换为机器码并执行,JVM 提供了内存管理、垃圾回收、线程管理等功能,需要的朋友可以参考下
    2023-10-10
  • Mybatis-Plus自动属性填充与自定义Insert into语句顺序详解

    Mybatis-Plus自动属性填充与自定义Insert into语句顺序详解

    本文通过调试发现,Mybatis-Plus在拼接SQL语句时未使用自定义属性填充的值,原因是语句拼接在属性填充之前,因此,需要在自定义SQL语句中去除`<if>`的非空判断,直接使用`#{testFiled}`,这样最终在进行数据插入时,Mybatis会动态的替换掉该占位符
    2026-05-05
  • SpringBoot时间格式化的方法小结

    SpringBoot时间格式化的方法小结

    SpringBoot中的时间格式化通常指的是将Java中的日期时间类型转换为指定格式的字符串,或者将字符串类型的时间解析为Java中的日期时间类型,本文小编将给大家详细总结了SpringBoot时间格式化的方法,刚兴趣的小伙伴跟着小编一起来看看吧
    2023-10-10

最新评论