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 @   Resign~as  阅读(764)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示