MyBatis之多选删除功能

我们在做项目的时候通常会有多选删除的需求,就是比如下面这张图

 

 我们可以选中左边的多个方框,进行多个删除,我之前有这样的需求一般用的是在servlet中循环多次sql,学了mybatis,我们可以把这些选中的id封装到数组中,在SQL中遍历,需要用到in关键字。

 

SQL

<delete id="deleteByIds">
        delete
        from tb_brand
        where id in
            <foreach collection="ids" item="id" separator="," open="(" close=")">
                #{id}
            </foreach>
            ;
    </delete>

这里是通过MyBatis的<foreach>标签进行遍历的,非常方便。

删除方法

public void deleteByIds() throws IOException {

        int[] ids = {10,11,12};
        //1.加载mybatis的核心配置文件,获取SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2.获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession(true);

        //3.获取Mapper接口的代理对象
        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);

        //4.执行方法
        brandMapper.deleteByIds(ids);


        //5.释放资源
        sqlSession.close();
    }

执行后,可以删除数组中id的数据项,简化了SQL的书写。

posted @ 2022-06-03 13:40  椅念琼  阅读(118)  评论(0编辑  收藏  举报