我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

1.第一种方式:

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

        ①首先定义接口类

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

        ②在实现类中配置Mapper.xml

            delete from accounts where id in (${ids})    

        ③测试类

    @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 ConnectionDEBUG [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 ids);

         ②在实现类中配置Mapper.xml