服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 使用Mybatis如何实现删除多个数据

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

2022-09-12 15:01black小黑黑 Java教程

这篇文章主要介绍了使用Mybatis如何实现删除多个数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Mybatis删除多个数据

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

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

 

操作步骤如下

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

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

2.配置Mapper.xml如下:

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

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如何实现删除多个数据

 

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>,其中的每项就是一张表的截断语句

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

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

直接将整个String传过去执行

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

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

原文地址:https://blog.csdn.net/weixin_43689040/article/details/84860501

延伸 · 阅读

精彩推荐