MyBatis如何使用delete标签删除数据呢?
admin
2024-02-17 12:18:52
0

转自:

MyBatis如何使用delete标签删除数据呢?

MyBatis标签的功能

     MyBatis中delete标签的功能:用于定义delete 语句,其功能为执行删除操作。
    当 MyBatis运行delete标签后,会返回一个整数,此整数代表删除操作所影响的行数

下文将通过示例的方式讲述delete标签的用法说明,如下所示: 

1. 在 UserInfoMapper.xml 中使用 delete 标签添加一条 delete 语句,代码如下。


delete from website where name = #{name}


2.  在 UserInfoMapper 接口中增加一个 deleteUserInfo() 方法,代码如下。

int deleteUserInfo(String name);参数为 String 类型的字符串
返回值为 int 类型,返回运行sql语句后,被删除记录的行数。


3. 测试代码

//删除 name 为"java265" 的记录
String name = "java265";
int i = userInfoMapper.deleteUserInfo(name);
System.out.println("共删除了 " + i + " 条记录");


4. 运行测试代码,控制台输出以下信息---

共删除了 3 条记录

delete 标签常用属性

属性名称描述备注
id它和 Mapper 的命名空间组合起来使用,是唯一标识符,供 MyBatis 调用 如果命名空间+ id 不唯一,那么 MyBatis 抛出异常
parameterType传入 SQL 语句的参数类型的全限定名或别名,它是一个可选属性。支持基本数据类型和 JavaBean、Map 等复杂数据类型
flushCache该属性用于设置执行该操作后,是否会清空二级缓存和本地缓存,默认值为 true。-
timeout该属性用于设置 SQL 执行的超时时间,如果超时,就抛异常。-
statementType执行 SQL 时使用的 statement 类型, 默认为 PREPARED,可选值:STATEMENT,PREPARED 和 CALLABLE。 -
delete标签注意事项:1.delete标签没有resultType 属性2.delete标签也可传递多个参数信息

传递多个参数

同其它标签一样,
Mybatis 为delete标签为映射器传递多个参数提供以下方法:

  • 使用 Map 传递参数
  • 使用注解传递参数
  • 使用 JavaBean 传递参数

使用 Map 传递参数

将参数封装到一个 Map 对象中
然后传递给 MyBatis 的映射器
1. 在 UserInfoMapper 接口中,定义一个 deleteUserInfoByMap() 方法,并使用 Map 传递参数

int deleteUserInfoByMap(Map params);


2.在 UserInfoMapper.xml 中使用 delete 标签定义一个 delete 语句,并接收通过 Map 传递的参数,xml文件如下所示



delete from userInfo where name = #{name} and notes= #{notes}
lt;/delete>


3. 测试代码如下。

//使用 Map 向 delete 标签传递参数
Map params = new HashMap<>();
params.put("name", "Java爱好者");
params.put("url", "www.java265.com");
int i = userInfoMapper.deleteUserInfoByMap(params);
System.out.println("通过 Map 传递参数,共删除了 " + i + " 条记录");


4. 运行测试代码

通过 Map 传递参数,共删除了 1 条记录

使用注解传递参数

MyBatis框架提供的 @Param 注解为注解器传递参数,如下例所示:
1. 在 UserInfoMapper 接口中,定义一个 deleteUserInfoByParam() 方法,并使用 @Param 注解传递参数,方法如下

int deleteUserInfoByParam(@Param("name") String name, @Param("notes") String notes);


2. 在 UserInfoMapper.xml 中使用 delete 标签定义一个 delete 语句,并接收通过 @Param 注解传递的参数,配置如下。


3. 测试代码

//使用 @Param 注解传递参数
String name = "java265";
String url = "www.java265.com";
int i = userInfoMapper.deleteUserInfoByParam(name, url);
System.out.println("通过 @Param 注解传递参数,共删除了 " + i + " 条记录");


4. 执行测试代码

通过 @Param 注解传递参数,共删除了 1 条记录

使用 JavaBean 传递参数

当参数过多时,笔者建议使用JavaBean实体类的方式将参数信息传递给映射器
1. 在 UserInfoMapper 接口中,定义一个 deleteUserInfoByJavaBean() 方法,并使用 JavaBean 传递参数,方法如下。

int deleteUserInfoByJavaBean(UserInfo userInfo);


2. 在 UserInfoMapper.xml 中使用 delete 标签定义一个 delete 语句,并接收通过 JavaBean 传递的参数,配置如下。

   delete from userInfowhere name = #{name} and notes= #{notes}  


3. 测试代码如下。

 //使用 JavaBean 传递参数到更新语句中 UserInfo userInfo = new userInfo(); userInfo.setName("Java爱好者"); userInfo.setNotes("https://www.java265.com/"); int i = userInfoMapper.deleteUserInfoByJavaBean(website); System.out.println("通过 JavaBean 传递参数,共删除了 " + i + " 条记录"); 


4. 执行测试代码

通过 JavaBean 传递参数,共删除了 3 条记录

相关内容

热门资讯

天奇自动化工程股份有限公司20... 来源:上海证券报 证券代码:002009 证券简称:天奇股份 公告编号:2026-005 天奇自动...
原创 消... 贷款利率普降、监管红线收紧,曾经靠消费贷“躺着赚钱”的民营银行,正在集体调转船头,把目光瞄准小微贷市...
原创 她... 提到潘阳,很多人首先想到的便是潘长江的独女。在这位父亲的光环下成长,作为星二代的她,并没有一味地追求...
瞄准AIDC的金盘科技筹划“A... 观点网 在拿下近7亿元海外数据中心项目合同之后,金盘科技又宣布筹划港股上市。 1月27日,海南金盘智...
数字营销哪家强?盐城企业高效获... 数字营销如何破除“看不见”的困境 线上存在感弱是企业获客的首要障碍。对于盐城地区的企业而言,当潜在客...
170家融资平台有序退出,陕西... 来源:21世纪经济报道 21世纪经济报道记者 凌晨 西安报道 1月27日上午,陕西省第十四届人民代表...
国资委谈央企重组:减少行业内卷 关于央企重组最新动向,今天(1月28日),国务院国资委企业改革局局长林庆苗在国新办发布会上透露,下一...
想“金蝉脱壳”卖身美国?中国养... 吃尽中国红利,却卸磨杀驴卖身美国,商务部摁死的AI白眼狼一点都不冤 蝴蝶效应科技一家靠中国土壤扶植...
遭商誉反噬!电魂网络迎上市首亏... 深圳商报·读创客户端记者 陈琳琳 2026年1月28日,电魂网络披露《股东及董事、高管减持股份结果公...
一度突破5300美元/盎司!现... 本报(chinatimes.net.cn)记者周梦婷 北京报道 国际现货黄金价格再攀新高。1月28日...
连续三年破万亿 深圳发布未来三... 来源:21世纪经济报道 21世纪经济报道记者李金萍 深圳报道 深圳稳坐“万亿消费之城”。2025年,...
超500家A股公司年报预亏 5... 当前正值上市公司年报预告披露期,不同于以往的绩优股抢先发布业绩,今年财报季里,一批亏损公司正在密集“...
马斯克突然变卦!SpaceX准... 王爷说财经讯: 史上最大IPO来袭! 你敢信吗?那个曾经发誓“绝不上市”、把季度财报视为“地狱之火”...
两家上市公司同时公告将2025... 来源:会计雅苑 公司原审计机构立信所因审计工作人员变动和整体工作安排等综合原因, 预计无法为公司提...
2026年深圳首家A股上市企业... 深圳商报·读创客户端记者 吴素红 李丹 1月28日,深圳市恒运昌真空技术股份有限公司在上海证券交易所...
【2026最新】现货黄金交易十... 在2026年全球经济错综复杂的背景下,避险情绪再度升温,现货黄金(伦敦金)凭借其高流动性和双向交易机...
原创 2... 你或许从未留意过车灯。 汽车产业卷到白热化的今天,连最不起眼的车灯,都成了兵家必争的黄金赛道,甚至开...
原创 白... 最近的白银价格大家看了吗? 现货白银的价格已经突破了100美元一盎司了,这个价格简直太离谱了。 上个...