MyBatis的删除操作

  1. 删除

    1. 删除一个

      1.编写接口方法:Mapper接口

      参数:id

      结果:void

      BrandMapper类里添加方法

      /**
       * 根据id删除
       */
      void deleteById(int id);

       

      2.编写SQL语句:SQL映射文件

      BrandMapper.xml里添加SQL语句

      <delete id="deleteById">
          delete from tb_brand where id = #{id};
      </delete>

       

      3.执行方法,测试

      测试类

      @Test
      public void testDeleteById() throws IOException {
      ​
          //接收参数
      int id = 6;
      ​
      ​
          //封装对象
      ​
      ​
          //1.获取SqlSessionFactory
          String resource = "mybatis-config.xml";
          InputStream inputStream = Resources.getResourceAsStream(resource);
          SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      ​
          //2.获取SqlSession对象
          //SqlSession sqlSession = sqlSessionFactory.openSession();
          SqlSession sqlSession = sqlSessionFactory.openSession(true);
      ​
          //3.获取Mapper接口的代理对象
          BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
      ​
          //4.执行方法
          brandMapper.deleteById(id);
      ​
          //提交事务
          sqlSession.commit();
      ​
          //5.释放资源
          sqlSession.close();
      ​
      }

       

    2. 批量删除

1.编写接口方法:Mapper接口

参数:id数组

结果:void

BrandMapper类添加方法

/**
 * 批量删除
 */
void deleteByIds(@Param("ids") int [] ids);

 

2.编写SQL语句:SQL映射文件

 <!--
        MyBatis会将数组的参数,封装为一个Map集合,
            * 默认:array = 数组
            * 使用@Param注解来改变map集合的默认的key的名称
    --><delete id="deleteByIds">
        delete from tb_brand where id
        in(
            <foreach collection="ids" item="id" separator="," open="(" close=")">
                #{id}
            </foreach>
            );
​
    </delete>

 

3.执行方法,测试

测试类

@Test
public void testDeleteByIds() throws IOException {

    //接收参数

    int[] ids = {5,7,8};


    //封装对象


    //1.获取SqlSessionFactory
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

    //2.获取SqlSession对象
    //SqlSession sqlSession = sqlSessionFactory.openSession();
    SqlSession sqlSession = sqlSessionFactory.openSession(true);

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

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

    //提交事务
    sqlSession.commit();

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

}

 

java
posted @ 2022-05-11 17:56  Resign~as  阅读(796)  评论(0)    收藏  举报