MyBatis完成删除操作

删除操作

1.删除一个数据
2.批量删除数据

1.删除一个数据

1.编写接口方法:Mapper接口
2.给定参数id
3.返回值为空
4.在SQL映射文件中编写SQL语句
5.执行方法、测试

1.1 编写接口方法
void deleteById(int id);
1.2 编写SQL语句
<delete id="deleteById">
	delete from tb_brand where id = #{id}
</delete>
1.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接口
2.给定参数id
3.返回值为空
4.在SQL映射文件中编写SQL语句
5.执行方法、测试

2.1 编写接口方法
void deleteByIds(int[] ids);
2.2 编写SQL语句
<delete id="deleteByIds">
 	delete from tb_brand where id
	in
		<foreach collection="array" item="id" separator="," open="(" close=")">
			#{id}
        </foreach>
        ;
</delete>

注意:
separator :分隔符,这里表示用,分开
open=“(” close=“)” 循环开始与结束
这里collection接收的参数,可以默认使用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>

但是相应的接口方法要修改

void deleteByIds(@Param("ids") int[] ids);
2.3 测试
@Test
    public void testDeleteByIds() throws IOException {
        //接收参数

        int[] ids = {9, 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();

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值