当前位置 : 主页 > 编程语言 > 其它开发 >

MyBatis之多选删除功能

来源:互联网 收集:自由互联 发布时间:2022-06-29
我们在做项目的时候通常会有多选删除的需求,就是比如下面这张图 我们可以选中左边的多个方框,进行多个删除,我之前有这样的需求一般用的是在servlet中循环多次sql,学了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的书写。

上一篇:Facebook出手!自适应梯度打败人工调参
下一篇:没有了
网友评论