<input id="ohw05"></input>
  • <table id="ohw05"><menu id="ohw05"></menu></table>
  • <var id="ohw05"></var>
  • <code id="ohw05"><cite id="ohw05"></cite></code>
    <label id="ohw05"></label>
    <var id="ohw05"></var>
  • 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-28 12:41  權。  閱讀(3)  評論(0編輯  收藏  舉報
    国产美女a做受大片观看