MyBatis update标签详解

 更新时间:2023年10月09日 14:46:44   作者:小日子呀  
这篇文章主要介绍了MyBatis update标签,使用 Map 传递参数会导致业务可读性的丧失,继而导致后续扩展和维护的困难,所以在实际应用中我们应该果断废弃该方式,需要的朋友可以参考下

在 WebsiteMapper.xml 中添加以下更新语句

<!--update 标签-->
<update id="updateWebsite" parameterType="string">
    update website set name = #{name}
</update>

在 WebsiteMapper 接口中增加一个 updateWebsite() 方法

int updateWebsite(String name);

参数为 String 类型的字符串;返回值为 int 类型,表示执行 sql 语句后受影响的记录的行数。

update 标签常用属性

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

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

传递多个参数

在上面的示例中,我们在更新语句中只使用了一个 String 类型的参数,而在实际的开发过程中,大多数时候,我们的更新语句都需要使用多个参数,Mybatis 为我们提供以下 3 种方式,来实现给映射器传递多个参数:

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

使用 Map 传递参数

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

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

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

<!--更新语句接收 Map 传递的参数-->
<update id="updateWebsiteByMap" parameterType="map">
    update website set name = #{name},url= #{url} where id = #{id}
</update>

使用注解传递参数

还可以使用 MyBatis 提供的 @Param 注解给注解器传递参数,在 WebsiteMapper 接口中,定义一个 updateWebsiteByParam() 方法,并使用 @Param 注解传递参数

int updateWebsiteByParam(@Param("name") String name, @Param("url") String url, @Param("id") Integer id);

在 WebsiteMapper.xml 中使用 update 标签定义一个 update 语句,并接收通过 @Param 注解传递的参数

<!--更新语句接收 @Param 注解传递的参数-->
<update id="updateWebsiteByParam">
    update website set name = #{name},url= #{url} where id = #{id}
</update>

使用 JavaBean 传递参数

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

<!--更新语句接收 JavaBean 传递的参数-->
<update id="updateWebsiteByJavaBean" parameterType="net.cc.www.po.Website">
    update website set name = #{name},url= #{url} where id = #{id}
</update>

区别

以上 3 种方式的区别如下:

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

到此这篇关于MyBatis update标签的文章就介绍到这了,更多相关MyBatis update标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于Java错误提示之找不到或无法加载主类的问题及正确处理方法

    关于Java错误提示之找不到或无法加载主类的问题及正确处理方法

    当我们在初学Java的是时候,类文件中是不设定包名(package)的,这种情况下注意classpath,基本上没有问题, 本文主要说明classpath和系统环境变量PATH都没问题的情况下出错原因和正确处理方法,感兴趣的朋友一起看看吧
    2022-01-01
  • Java 内存模型中的happen-before关系详解

    Java 内存模型中的happen-before关系详解

    这篇文章主要为大家介绍了Java 内存模型中的happen-before关系示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • feign调用返回object类型转换方式

    feign调用返回object类型转换方式

    这篇文章主要介绍了feign调用返回object类型转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java实现图片无损任意角度旋转

    java实现图片无损任意角度旋转

    这篇文章主要为大家详细介绍了java实现图片无损任意角度旋转,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • 详解Java解析XML的四种方法

    详解Java解析XML的四种方法

    本篇文章主要介绍了java解析XML的几种方式,XML现在已经成为一种通用的数据交换格式,给数据集成与交互提供了方便,有需要的可以了解一下。
    2016-11-11
  • Java实现RTF转Word的完整指南

    Java实现RTF转Word的完整指南

    在企业办公自动化、文档管理系统以及跨平台应用中,文档格式的兼容性问题一直是开发者面临的常见挑战,在实际开发中,如何在 Java 环境下高效地将 RTF 文档转换为 Word 文档是开发者经常遇到的需求,本文将介绍如何使用Java将RTF转换为Word,需要的朋友可以参考下
    2025-12-12
  • SpringBoot Mybatis 配置文件形式详解

    SpringBoot Mybatis 配置文件形式详解

    这篇文章主要介绍了SpringBoot Mybatis 配置文件形式详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 详解SpringBoot定时任务说明

    详解SpringBoot定时任务说明

    本篇文章主要介绍了详解SpringBoot定时任务说明,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 在Java中解析和生成 XML的操作指南

    在Java中解析和生成 XML的操作指南

    XML(可扩展标记语言)是用于存储和传输数据的标准格式,在许多应用中,XML 常用于配置文件、数据交换和存储结构化信息,在 Java 中,我们可以使用不同的技术来解析和生成 XML 文件,在这篇文章中,我们将介绍这些解析方式,需要的朋友可以参考下
    2025-11-11
  • 配置hadoop环境mapreduce连接不上hdfs解决

    配置hadoop环境mapreduce连接不上hdfs解决

    这篇文章主要为大家介绍了配置hadoop环境mapreduce连接不上hdfs解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论