您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
12-删除功能(delete、foreach标签,collection,item,separator,open,close属性)
发布时间:2024-11-21 23:48:47编辑:雪饮阅读()
-
删除单条数据
单条数据的删除就是比较简单了
mapper配置文件中直接定义delete标签如
<delete id="deleteById">
delete from tb_brand where id = #{id}
</delete>
然后mapper接口中的用于删除的抽象方法
void deleteById(int id);
则删除方法的实现如:
@Test
public void test8() throws IOException {
String resource="mybatis-config.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession(true);
BrandMapper brandMapper=sqlSession.getMapper(BrandMapper.class);
List<Brand> brands=brandMapper.selectAll();
if(brands.size()>0){
int id=brands.get(0).getId();
System.out.println("删除id:"+id);
brandMapper.deleteById(id);
}
sqlSession.close();
}
批量删除
批量删除就稍微有点麻烦。
首先在mapper配置文件中定义delete标签如
<delete id="deleteByIds">
delete from tb_brand where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
这里的collection指定为ids,而其实默认应该是填写array才对,但我这里使用了自定义,就是说传递过来的数组的占位名在mapper接口中的抽象方法中用Param注解来实现自定义的,而item则是定义数组元素中每个元素的占位名,separator则是定义分隔符,我们mysql的in查询的分隔符就是英文逗号,open就是mysql的in查询的左边括号,close就是mysql的in查询的右边括号。
那么mapper接口中定义对应批量删除的抽象方法如
void deleteByIds(@Param("ids") int[] ids);
所以最终的批量删除的测试方法如
//批量删除
@Test
public void test9() throws IOException {
String resource="mybatis-config.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession(true);
BrandMapper brandMapper=sqlSession.getMapper(BrandMapper.class);
List<Brand> brands=brandMapper.selectAll();
int[] ids=new int[brands.size()];
String idsStr="";
if(brands.size()>0){
for(int i=0;i<brands.size();i++){
int id=brands.get(i).getId();
ids[i]=id;
if(i==brands.size()-1){
idsStr+=id;
}
else{
idsStr+=id+",";
}
}
System.out.println("删除ids:"+idsStr);
brandMapper.deleteByIds(ids);
}
sqlSession.close();
}
本期词汇
separator [计] 分隔符
batis (Batis)人名
关键字词:delete,foreach,collection,item,separator,open,close
上一篇:11-添加&修改功能(insert、update标签、useGeneratedKeys、keyProperty属性、commit方法、openSession参数)
下一篇:13-参数传递arg,param,List,Array,Map(mapper接口的param注解与map的原理)
相关文章
- 11-添加&修改功能(insert、update标签、useGeneratedK
- OpenCart 最新使用教学视频合集
- OpenCart 网站系统设置介绍(关闭维护模式,每页显示商品
- OpenCart 如何添加模块显示到页面布局 (layout)?
- OpenCart 如何安装插件?举例安装支付宝支付插件、 如何
- OpenCart 如何安装 ocmod 插件视频教程?
- OpenCart 如何安装 vqmod 视频教程
- OpenCart 设置首页的最新商品教程 (latest products)
- OpenCart 如何配置首页显示的推荐商品 (featured prod
- OpenCart 礼品卡券功能介绍及使用教程 (voucher)及历