删除操作
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();
}