使用Mybatis如何实现删除多个数据

目录
  • Mybatis删除多个数据
    • 例如:删除数据库中sid=1和sid=2的数据
    • 操作步骤如下
  • Mybatis批量删除多表数据
    • 业务需求
    • 查询以obj_前缀开头的表的截断语句

Mybatis删除多个数据

例如:删除数据库中sid=1和sid=2的数据

操作步骤如下

1.在实体类中创建一个LIst用于存放要删除的sid

2.配置Mapper.xml如下:

collection装要遍历的字段,item装获取到的变量,separator装多值之间分割的字段

如果SQL删除语句为:

DELETE FROM animal WHERE a_sid IN(1,2)

用foreach标签中的open="" close="",分别表示以什么开始和以什么结束

3.接口文件中配置执行语句

public int delMor(Animal animal);

4.配置Test相关语句测试:

Mybatis批量删除多表数据

业务需求

需要一键清除数据,将库中以“obj_”前缀开头的表数据全部清除。

查询以obj_前缀开头的表的截断语句

mapper接口方法:

     /**
     * 查询所有obj开头的表的数据删除sql
     */
    List<String> selectAllObjTableRemoveSql();

xml:

<select id="selectAllObjTableRemoveSql" resultType="java.lang.String">
        SELECT
            CONCAT( 'truncate table ', TABLE_NAME, ';' )
        FROM
            information_schema.TABLES
        WHERE
            table_schema = 'sc-gateway'
          AND TABLE_NAME LIKE 'obj_%';
    </select>

其中的“obj_”就是需要匹配的表名称字符

查询的结果是一个List<String>,其中的每项就是一张表的截断语句

后续只要将每个语句执行一遍就可以了

直接将整个String传过去执行

<delete id="removeDataBySql" parameterType="String">
   ${value}
</delete>

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

(0)

相关推荐

  • Mybatis批量删除数据操作方法

    MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作.废话不多说,先给大家一段代码片段! <delete id="deleteByStandardIds"> delete from t_standard_catalog where standard_id in <foreach collection="array" item="standardId" open="(" close=&quo

  • Mybatis批量删除多表

    一. 这里主要考虑两种参数类型:数组或者集合. 而这点区别主要体现在EmpMapper.xml文件中标签的collection属性: 当collection="array"时,表名参数为数组; 当collection="list"时,表名参数为集合. 二. 注意: 无论Mybatis是与mysql数据库结合,还是与Oracle数据库,都同样适合如下设置与操作. 三. 具体示例如下: EmpMapper.xml: <!-- 批量删除员工信息 --> <

  • Mybatis 如何批量删除数据的实现示例

    本期以最常用的根据id批量删除数据为例: 接口设计1:List类型单参数 Integer deleteByIds(List<Integer> ids); 接口设计2:Array数组类型单参数 Integer deleteByIds(Integer[] ids); 接口设计3:可变长度参数 Integer deleteByIds(Integer... ids); 此以接口2为例子mapper.xml配置如下: <delete id="deleteByIds"> D

  • MyBatis 实现数据的批量新增和删除的操作

    在项目的开发中,我们经常需要对数据进行批量的操作,如:批量新增.批量删除等.下面将介绍MyBatis如何实现数据的批量新增和删除操作. 创建UserMapper接口(用户信息Mapper动态代理接口),实现用户信息的批量新增.批量删除.批量查询. package com.pjb.mapper; import com.pjb.entity.UserInfo; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.

  • 使用Mybatis如何实现删除多个数据

    目录 Mybatis删除多个数据 例如:删除数据库中sid=1和sid=2的数据 操作步骤如下 Mybatis批量删除多表数据 业务需求 查询以obj_前缀开头的表的截断语句 Mybatis删除多个数据 例如:删除数据库中sid=1和sid=2的数据 操作步骤如下 1.在实体类中创建一个LIst用于存放要删除的sid 2.配置Mapper.xml如下: collection装要遍历的字段,item装获取到的变量,separator装多值之间分割的字段 如果SQL删除语句为: DELETE FRO

  • mybatis mysql delete in操作只能删除第一条数据的方法

    出现的Bug 如图,我开始复制delete语句和参数到数据库执行,删除两条数据,但是后台执行确只删除一条数据,当时表示一脸懵逼  分析原因 分析原因 如图,正确的参数传值应该是这样的,聪明的同学,应该就知道哪里错了 解决问题  解决问题 我就不贴开始的代码了,直接贴解决bug的代码 mybatis中的代码 <!-- 批量删除--> <delete id="deleteByIds" parameterType="int[]"> <![CD

  • Mybatis 插入和删除批处理操作

    在操作数据库时,经常会碰到批量插入.批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入.批量删除时会有一些问题.下面对使用Mybatis批量插入,批量删除进行介绍. 1. 批量插入 Java代码: // Model: Test.java @Data public class Test { private String x; private String y; private String z; } // Mapper: TestMapper.java public v

  • mybatis postgresql 批量删除操作方法

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统.POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询.外键.触发器.视图.事务完整性.多版本并发控制等.同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型.函数.操作符.聚集函数.索引方法.过程

  • MyBatis Plus逻辑删除和分页插件使用详解

    概要:Mybatis plus 官网链接 :https://mp.baomidou.com/guide/ 一.依赖配置: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

  • Mybatis plus逻辑删除注解@TableLogic的使用

    目录 物理删除和逻辑删除 @TableLogic注解 @TableLogic注解默认值: @TableLogic注解用法 首先这个注解是苞米豆出品,也就是我们常说的mybatis升级版的东西. 简单讲一下这个注解的用法:我们在做数据库设计的时候有时候哪怕是删除也不会真的走物理删除,毕竟这样很多数据就不可恢复了,大多数时候很多删除都是用逻辑删除. 物理删除和逻辑删除 简单来说物理删除就是真的把这条数据从数据库删除了.而逻辑删除主要是把表中的某一个字段作为标识符,一般我们常用的会默认初始为0,当我们

  • FLEX ArrayCollection删除过滤的数据问题解决

    一.问题: ArrayCollection添加过滤器后,部门数据不会被展现,当我删除未展现的数据时,调用removeItemAt()是无法删除的. 二.原因: 复制代码 代码如下: public function removeItemAt(index:int):Object { if (index < 0 || index >= length) { var message:String = resourceManager.getString( "collections",

  • Oracle删除重复的数据,Oracle数据去重复

    Oracle  数据库中查询重复数据: select * from employee group by emp_name having count (*)>1;  Oracle  查询可以删除的重复数据 select t1.* from employee t1 where (t1.emp_name) in (SELECT t2.emp_name from employee t2 group by emp_name having count (*)>1) and t1.emp_id not in

  • Python增量循环删除MySQL表数据的方法

    需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中"指定时期前"的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQL中也存在类似功能,怎奈自己不精通,于是采用Python来实现 话不多少,上脚本: # coding: utf-8 import MySQLdb import time # delete config DELETE_DATETIME = '2016-08-31 23:59:59' DELE

随机推荐