MyBatis delete标签

这篇具有很好参考价值的文章主要介绍了MyBatis delete标签。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 WebsiteMapper.xml 中使用 delete 标签添加一条 delete 语句

<delete id="deleteWebsite" parameterType="string">
    delete from website where name = #{name}
</delete>
int deleteWebsite(String name);

参数为 String 类型的字符串;返回值为 int 类型,表示执行 sql 语句后,被删除记录的行数

delete 标签常用属性

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

注意:delete 标签中没有 resultType 属性,只有查询操作才需要对返回结果类型进行相应的指定。

传递多个参数

在上面的示例中,我们在 delete 语句中只使用了一个 String 类型的参数,而在实际的开发过程中,我们的 delete 语句往往需要使用多个参数对记录进行筛选,Mybatis 为我们提供以下 3 种方式,来实现给映射器传递多个参数:

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

使用 Map 传递参数

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

int deleteWebsiteByMap(Map<String, Object> params);

在 WebsiteMapper.xml 中使用 delete 标签定义一个 delete 语句,并接收通过 Map 传递的参数 

<!--通过 Map 传递参数,执行删除操作-->
<delete id="deleteWebsiteByMap" parameterType="map">
    delete
    from website
    where name = #{name}
      and url = #{url}
</delete>

使用注解传递参数

我们还可以使用 MyBatis 提供的 @Param 注解给注解器传递参数

int deleteWebsiteByParam(@Param("name") String name, @Param("url") String url);
<!--通过 @Param 注解传递参数,执行删除操作-->
<delete id="deleteWebsiteByParam">
    delete
    from website
    where name = #{name}
      and url = #{url}
</delete>

使用 JavaBean 传递参数

在参数过多的情况下还可以将参数通过 setter 方法封装到 JavaBean(实体类)对象中传递给映射器。

int deleteWebsiteByJavaBean(Website website);
<!--通过 JavaBean 传递参数,执行删除操作-->
<delete id="deleteWebsiteByJavaBean" parameterType="net.cc.www.po.Website">
    delete
    from website
    where name = #{name}
      and url = #{url}
</delete>

区别

以上 3 种方式的区别如下:文章来源地址https://www.toymoban.com/news/detail-727618.html

  • 使用 Map 传递参数会导致业务可读性的丧失,继而导致后续扩展和维护的困难,所以在实际应用中我们应该果断废弃该方式。
  • 使用 @Param 注解传递参数会受到参数个数的影响。当 n≤5 时,它是最佳的传参方式,因为它更加直观;当 n>5 时,多个参数将给调用带来困难。
  • 当参数个数大于 5 个时,建议使用 JavaBean 方式。

到了这里,关于MyBatis delete标签的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mybatis原理 - 标签解析

    很多开源框架之所以能够流行起来,是因为它们解决了领域内的一些通用问题。但在实际使用这些开源框架的时候,我们都是要解决通用问题中的一个特例问题,所以这时我们就需要使用一种方式来控制开源框架的行为,这就是开源框架提供各种各样配置的核心原因之一。

    2024年01月21日
    浏览(40)
  • MyBatis:动态 SQL 标签

    MyBatis 动态 SQL 标签 ,是一组预定义的标签,用于构建动态的 SQL 语句,允许在 SQL 语句中使用条件、循环和迭代等逻辑。通过使用动态 SQL 标签,开发者可以根据不同的条件和参数生成不同的 SQL 语句,实现更加灵活的数据访问操作。但是,需要谨慎处理 SQL 注入问题,确保所

    2024年02月04日
    浏览(45)
  • MyBatis--08--常用标签

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 属性 描述 id 在命名空间中唯一的标识符,被用来引用这条语句 parameterType 传入这条语句的参数的类全限定名或别名 resultType 期望从这条语句中返回结果的类全限定名或别名, resultType 和 resultMap 之间只

    2024年02月19日
    浏览(32)
  • mybatis的<sql>标签使用

    记录 :421 场景 :使用MyBatis的sql/sql标签元素,把重复的SQL语句集中到sql标签,使用标签的id属性指定唯一标识。在insertupdatedeleteselect等标签中使用include/include标签引用sql/sql标签。 版本 :JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。 1.基础知识 1.1MyBatis的标签 (1)查看MyBatis支持的标签 地址

    2024年01月22日
    浏览(36)
  • mybatis trim标签使用详解

    mybatis的trim标签一般用于去除sql语句中多余的and,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。 以下是trim标签中涉及到的属性: prefix=添加前缀 suffix=添加后缀 prefix

    2024年02月06日
    浏览(44)
  • mybatis的<choose>标签使用

    记录 :418 场景 :使用MyBatis的choose/choose标签的when/when标签的test属性,对入参属性的值做非null(!=null)、非空(!=\\\'\\\')判断,或者与常量做相等(==)或者不等判断(!=)。 版本 :JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。 1.基础知识 1.1MyBatis的标签 (1)查看MyBatis支持的标签 地址:http://mybatis.org/d

    2024年02月08日
    浏览(37)
  • MyBatis配置文件 —— 相关标签详解

    目录 相关导读 一、Mybatis配置文件 — properties标签 二、Mybatis配置文件 — settings标签

    2023年04月08日
    浏览(45)
  • mybatis的<foreach>标签使用

    记录 :419 场景 :使用MyBatis的foreach/foreach标签的循环遍历List类型的入参。使用collection属性指定List,item指定List中存放的对象,separator指定分割符号,open指定开始字符,close指定结束字符。 版本 :JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。 1.基础知识 1.1MyBatis的标签 (1)查看MyBatis支持的

    2023年04月24日
    浏览(38)
  • 详细分析Mybatis中的<foreach>标签

    对于Java专栏:Java专栏 对于Mybatis的相关知识可看我之前的文章:Mybatis从入门到精通(全) 对于其余Java框架可看我之前的文章:java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全) 对于上述Mybatis中曾有讲过foreach标签!此篇博客对其标签进行拓展 MyBatis中的

    2024年02月02日
    浏览(39)
  • MyBatis 动态SQL之<where>标签-

    where 标签主要用来简化 SQL 语句中的条件判断,可以自动处理 AND/OR 条件。 在if标签和choose-when-otherwise标签的案例中,SQL语句加入了一个条件’1=1’,它既保证了where后面的条件成,页避免了where后面出现的第一个词语是and 或者or之类的。 假设把条件‘1=1’去掉,可以出

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包