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映射文件

 
?
    <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