`

MyBatis 配置 更新全表数据 最后一列多逗号的问题

 
阅读更多
Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作:

<select id="findBySrcId" resultMap="entityRelationResultMap">
  SELECT * FROM ENTITY_RELATION WHERE SRC_ID=#{srcId}
</select>
其中id对应同名java文件中的方法,resultMap对应的自定义的数据类型(当使用java自带类型就更容易了,比如java.lang.String之类的)。

但是涉及到更新操作时,可能不需要对所有字段更新,这时不需要更新的字段需要保持原字段信息,当使用以下信息就会报错:

<update id="updateOne"  parameterType="com.inspur.search.data.EntityRelation">
update ENTITY_RELATION SET SRC_ID=#{srcId},SRC_TYPE=#{srcType},DEST_ID=#{destId},
        DEST_TYPE=#{destType},REL_TYPE=#{relType},STATUS=#{status},SN_ID=#{snId}
where id=#{id}
</update>
因为不更新的字段,会被传递null到SQL中,引起异常。

这时就需要进行动态SQL拼接,如下,使用trim就是为了删掉最后字段的“,”。
主要不用单独写SET了,因为set被包含在trim中了:

<update id="updateOne"  parameterType="com.inspur.search.data.EntityRelation">
UPDATE ENTITY_RELATION
<trim prefix="set" suffixOverrides=",">
  <if test="srcId!=null">SRC_ID=#{srcId},</if>
  <if test="srcType!=null">SRC_TYPE=#{srcType},</if>
  <if test="destId!=null">DEST_ID=#{destId},</if>
  <if test="destType!=null">DEST_TYPE=#{destType},</if>
  <if test="relType!=null">REL_TYPE=#{relType},</if>
  <if test="status!=null">STATUS=#{status},</if>
  <if test="snId!=null">SN_ID=#{snId},</if>
</trim>
WHERE id=#{id}
</update>
分享到:
评论

相关推荐

    SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

    9. **安全性**:多数据源配置也可能涉及安全问题,如权限控制和数据隔离,需要确保不同数据源间的访问控制得到妥善处理。 综上所述,SSM多数据源配置框架是一种强大的工具,它为企业级应用提供了灵活的数据处理能力...

    mybatis动态创建数据库表

    总结,MyBatis动态创建数据库表的能力主要依赖于与数据库交互的SQL语句,通过自定义Mapper和XML配置文件,可以实现数据库表的创建、数据的插入和更新。在实际应用中,这使得开发更加灵活,可以根据需求动态管理...

    Mybatis拦截器记录数据更新历史记录到MongoDB

    在“Mybatis拦截器记录数据更新历史记录到MongoDB”这个项目中,我们需要创建一个自定义的拦截器类,该类需要实现`org.apache.ibatis.plugin.Interceptor`接口并覆写`intercept`方法。在这个方法里,我们可以捕获到...

    Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程

    Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 详细教程 本教程主要介绍了 Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 的详细教程。下面将详细介绍如何实现 Spring 整合 ...

    SpringBoot使用MyBatis Plus + 自动更新数据表

    最后,启动Spring Boot应用,通过上述配置,MyBatis Plus将与Spring Boot无缝集成,提供简洁易用的数据操作API,同时实现了数据表的自动更新功能。通过`mybatisPlusDemo`项目中的示例代码,开发者可以更深入地了解这...

    springboot+mybatis配置多数据源,mysql+mysql+oracle

    springboot+mybatis的整合,配置多数据源多数据库连接。里边先进行了mysql+mysql的库2个数据源连接,后边又加了oracle 的库进行连接,总共3个连接,后续所有的库连接都一样,照模子套就可以!

    09MyBatis配置 sqlMapConfig1

    MyBatis是一个流行的基于Java的持久层框架,用于简化Java应用程序中的数据访问。它提供了一个灵活的SQL映射框架,支持各种数据库管理系统,包括MySQL、Oracle、SQL Server等。本文将详细介绍MyBatis配置文件...

    Springboot mybatis多数据源配置项目实例

    Spring Boot 和 MyBatis 的组合提供了这样的灵活性,可以方便地进行多数据源配置。本项目实例将详细讲解如何在 Spring Boot 中集成 MyBatis 并配置多数据源。 首先,我们需要了解 Spring Boot 中的数据源配置。...

    spring boot + mybatis+mysql yml配置多数据源配置

    解压后有资源文件和说明文件 需要创建两个数据库 名字为: familymonitor_v2 和 orderpayment ... 表tb_coupon_info 在数据库orderpayment 中 ...环境为 spring boot mybatis +多数据源 demosql.sql为数据库建表语句

    mybatis多对多配置

    在MyBatis中,多对多关系是一种常见的数据库表关联关系,它表示一个实体可以与多个其他实体相关联,反之亦然。例如,一个学生可以选修多门课程,而一门课程也可以被多个学生选修。为了在MyBatis中处理这种关系,我们...

    springmvc+mybatis配置

    3. **MyBatis的Oracle类型映射**:配置MyBatis的typeAliases,以解决Oracle特有的数据类型与Java类型之间的映射问题。 **四、整合SpringMVC与MyBatis** 1. **注入Mapper**:在SpringMVC的Controller中,通过@...

    Mybatis基于注解实现多表查询功能

    4. 实现多表查询:最后,我们可以使用Mybatis框架来实现多表查询。例如,我们可以使用findAll方法来查询所有账户信息,并同时查询出每个账户的用户信息。 四、Mybatis基于注解实现多表查询的示例 下面是一个简单的...

    Mybatis实现多表联合查询和批量插入

    Mybatis实现多表联合查询和批量插入 Mybatis是一款流行的持久层框架,它可以帮助开发者快速、高效地访问数据库。在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用...

    第三章 MyBatis的核心配置.docx

    例如,新建一个db.properties配置文件,写上数据库信息,接着在Mybatis文件中配置属性,通过resource引用,最后修改数据库连接信息。 3.2.3 元素 元素用于配置MyBatis的全局参数,常用参数包括: * cacheEnabled...

    MyBatis主配置文件

    MyBatis 不是完全的 ORM 解决方案,而是介于全自动化和手动操作之间的一种半自动化 ORM 实现。 MyBatis 的核心部分包括 SQL 映射文件和 MyBatis 框架的核心类。SQL 映射文件用于定义 SQL 语句,包括增删改查操作,...

    springboot + mybatis(通用mapper) + HikariCP(比durid更快)多数据源

    `SpringBoot`、`MyBatis` 和 `HikariCP` 的结合是目前广泛采用的一种高效、灵活的解决方案,特别是对于处理多数据源场景。这个项目组合利用了它们各自的优势,减少了开发人员的工作量,提高了系统的性能。 首先,`...

    Mybatis只更新set过的字段插件

    这个插件的主要作用是自动识别Mybatis中的Update语句,根据传入的参数对象,只对设置了新值的字段生成UPDATE语句,从而避免了全字段更新的问题,提高了数据更新的效率,并降低了数据库锁定的风险。在原1.0版本中,...

    SpringBoot整合mybatis-plus实现多数据源的动态切换且支持分页查询.pdf

    在SpringBoot项目中,整合Mybatis-Plus并实现多数据源的动态切换,同时支持分页查询是一项常见的需求。以下将详细阐述这个过程中的关键步骤和技术要点。 首先,我们需要引入必要的Maven依赖。这里提到了四个关键...

    SpringBoot+Mybatis+Druid+PageHelper实现多数据源并分页方法

    在本文中,我们将深入探讨如何使用SpringBoot、Mybatis、Druid和PageHelper来实现多数据源和分页功能。首先,SpringBoot是基于Spring框架的简化版本,它旨在简化微服务开发,提供了自动配置、内嵌式Web服务器以及...

    db2 mybatis 配置文件

    E:\mybatis-generator-core-1.3.2\mybatis-generator-core-1.3.2\lib&gt;java -jar mybat is-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite MyBatis Generator finished successfully.

Global site tag (gtag.js) - Google Analytics