Mybatis实现批量删除(两种常用方法)

这篇具有很好参考价值的文章主要介绍了Mybatis实现批量删除(两种常用方法)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.第一种方式:

        将任意多个 id 拼接成字符串,以参数形式传递进去,通过 in 函数 的方式来删除

        ①首先定义接口类

    /*** 批量删除 * @param ids
     * @return
     * */
    //通过id所组成的字符串实现批量删除
    public void deleteId(@Param("ids") String ids);

        ②在实现类中配置Mapper.xml

    <delete id="deleteId">
        delete from accounts where id in (${ids})
    </delete>

        ③测试类

    @Test
    public void testDeleteIds() {
        ad.deleteId("25,26,27");
        sqlSession.commit();
        MyBatisUtil.close(sqlSession);
    }

        ④结果

DEBUG [main] - Logging initialized using 'org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - Openning JDBC Connection
DEBUG [main] - Created connection 331510866.
DEBUG [main] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@13c27452]
DEBUG [main] - ==>  Preparing: delete from accounts where id in (25,26,27) 
DEBUG [main] - ==> Parameters: 
DEBUG [main] - Committing JDBC Connection [com.mysql.jdbc.JDBC4Connection@13c27452]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@13c27452]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@13c27452]
DEBUG [main] - Returned connection 331510866 to pool.

        注意: #{}中字符串类型会使用单引号,${} 则无需。这里只能使用${}方式,不能使用#{}


2.第二种方式如下:

        使用 foreach 标签来进行删除

        ①首先定义接口类

    //    通过list集合实现批量删除
    public void deleteByIds(@Param("ids") List<Integer> ids);

         ②在实现类中配置Mapper.xml

<!--    public void deleteByIds(@Param("ids") List<Integer> ids);-->
    <delete id="deleteByIds" parameterType="Integer">
        delete from accounts where id in
        <foreach collection="ids" open="(" close=")" separator="," item="id">
            #{id}
        </foreach>
    </select>

        ③测试类 

    @Test
    public void testDeleteByIds() throws IOException {
        List<Integer> List = new ArrayList<>();
        List.add(22);
        List.add(23);
        List.add(24);
        ad.deleteByIds(List);
        sqlSession.commit();
        MyBatisUtil.close(sqlSession);
    }

        ④结果

DEBUG [main] - Logging initialized using 'org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - Openning JDBC Connection
DEBUG [main] - Created connection 249155636.
DEBUG [main] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@ed9d034]
DEBUG [main] - ==>  Preparing: delete from accounts where id in ( ? , ? , ? ) 
DEBUG [main] - ==> Parameters: 28(Integer), 29(Integer), 30(Integer)
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@ed9d034]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@ed9d034]
DEBUG [main] - Returned connection 249155636 to pool.

        总结:两种方式均可,可根据自身熟悉度进行选择 文章来源地址https://www.toymoban.com/news/detail-585274.html

到了这里,关于Mybatis实现批量删除(两种常用方法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mybatis-plus 根据指定字段 批量 删除/修改

    mybatis-plus 提供了根据id批量更新和修改的方法,这个大家都不陌生 但是当表没有id的时候怎么办) 这个就不说了,就是因为不想手写SQL 所以才有这篇博客 mybatis plus 的 executeBatch 参考 mybatis plus 的updateBatchById 方法. 调用处: 接口 重写方法 实现 这种写法其实批量的效率还是比较慢的

    2024年02月13日
    浏览(28)
  • 在 MyBatis 中,可以使用相同的 SQL 映射语句进行批量删除和单个删除。

    目录 前端代码:  后端代码: controller  service层接口 service接口的实现 mapper层接口 xml sql 效果:(点击操作列的删除,可删除一行数据。勾选多个多选框再点击批量删除,可删除多个)    前端代码:  后端代码: controller  service层接口 service接口的实现 mapper层接口 xml 数据

    2024年02月19日
    浏览(37)
  • No Spring环境Mybatis-Plus批量插入并返回主键的两种方式

    批量插入,可以把Mybatis-Plus看作是Mybatis加强版;故Mybatis中的相关操作都可以在Mybatis-Plus中使用;在mysql数据库中支持批量插入,所以只要配置useGeneratedKeys和keyProperty就可以批量插入并返回主键了。 下面是批量插入的Dao层接口    一注解方式:      直接撸代码:      第二种: XML方

    2024年02月09日
    浏览(25)
  • MyBatis 批量插入数据的 3 种方法!

    数据库的最终效果如下: 接下来我们将使用 Spring Boot 项目,批量插入 10W 条数据来分别测试各个方法的执行时间。​ 循环单次插入的(测试)核心代码如下: 运行以上程序,花费了 88574 毫秒,如下图所示: MP 批量插入功能核心实现类有三个:UserController(控制器)、UserS

    2024年02月07日
    浏览(32)
  • MyBatis 的XML实现方法(JAVA)

    数据库表的结构如下: 在JAVA中的定义:     在xml文件中拷贝以下代码,这段代码是MyBatis的固定xml格式: 在mapper标签中插入以下代码 id:后面跟的是要实现的接口里面的具体的方法名称 #{}:中直接使用User对象的属性名来获取参数 进行单元测试 因为数据库中数据太少了,所

    2024年01月22日
    浏览(37)
  • Spring Boot学习随笔- 集成MyBatis-Plus(三)自定义SQL、分页实现(PaginationInterceptor )、更新和删除详细方法

    学习视频:【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备! 自定义mapper文件是为了应对一些更复杂的查询场景,首先先配置映射路径 由于这里的mapper文件放在java文件夹中,所以要在pom.xml里进行配置 mapper 测试 在MyBatis Plus中, 物理分页 和 内

    2024年02月03日
    浏览(45)
  • Spring+MyBatis使用collection标签的两种使用方法

    目录 项目场景: 实战操作: 1.创建菜单表 2.创建实体  3.创建Mapper 4.创建xml  属性描述: 效率比较: 本文说明了Spring Boot+MyBatis使用collection标签的两种使用方法 1. 方法一: 关联查询 2. 方法二: 嵌套select查询 这里只创建一张表,树结构只有两级,方便学习,多表关联是同样的

    2024年02月09日
    浏览(47)
  • Mybatis-plus 两种分页方法(分单表和联表)

    准备1:引入PageHelper依赖 准备2:新建表格分页数据对象 准备3:分页数据类 准备4:分页工具类 准备5:响应请求分页数据的方法 正式使用 1、如果只是单表查询,可以用QueryWrapper controller层 在service层新增接口以及实现类的方法 2、或者自定义SQL要多表查询,可以自己写方法联

    2024年02月05日
    浏览(33)
  • MyBatis实战指南(三):常用注解及使用方法

    在前面的两篇文章中,我们已经详细介绍了MyBatis的工作原理和基本使用。今天,我们将深入探讨MyBatis的一个重要特性——注解。如果你对MyBatis的注解还不熟悉,那么这篇文章将为你打开一扇新的大门。 首先,我们需要明白什么是注解。注解 Annotation 是从JDK1.5开始引入的新技

    2024年01月19日
    浏览(38)
  • Mybatis-Plus的SQL注入器实现批量插入/修改,效率比较

    mysql支持一条sql语句插入多条数据。但是Mybatis-Plus中默认提供的saveBatch、updateBatchById方法并不能算是真正的批量语句,而是遍历实体集合执行INSERT_ONE、UPDATE_BY_ID语句。 mybatis-plus虽然做了分批请求、一次提交的处理。但如果jdbc不启用配置rewriteBatchedStatements,那么批量提交的s

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包