`

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多数据源配置框架是一种强大的工具,它为企业级应用提供了灵活的数据处理能力...

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

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

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

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

    09MyBatis配置 sqlMapConfig1

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

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

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

    mybatis多对多配置

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

    springmvc+mybatis配置

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

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

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

    springboot + mybatis 多数据源demo

    Spring Boot结合MyBatis框架提供了一种优雅的方式来处理多数据源的配置和切换,以满足不同业务需求。本文将深入探讨如何使用Spring Boot与MyBatis实现多数据源的示例。 1. **Spring Boot简介** Spring Boot是...

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

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

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

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

    Mybatis只更新set过的字段插件

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

    第三章 MyBatis的核心配置.docx

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

    mybatis动态创建数据库表

    mybatis动态创建数据库表,支持数据库表动态创建,数据插入,数据修改

    mybatis配置文件以及日志文件Log4j

    这些配置文件是MyBatis运行的关键,它们定义了数据源、事务管理器、映射文件的位置等信息。具体来说,`mybatis-config.xml`是全局配置文件,包含了MyBatis的运行时环境设置,如数据库连接信息、类型处理器、插件等。...

    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.

    Mybatis-generator 生成Mybatis配置文件

    在项目开发过程中,手动编写这些文件是一项重复且耗时的工作,而Mybatis Generator则能有效地解决这个问题。 1. **Mybatis Generator 的工作原理** Mybatis Generator 通过读取配置文件(generatorConfig.xml),...

    mybatis配置及测试项目

    【标题】"mybatis配置及测试项目"是一个涵盖了MyBatis框架配置、MySQL数据库驱动以及日志设置的实践性项目,旨在帮助用户理解和掌握MyBatis的使用方法。在这个项目中,你将学习如何配置MyBatis以连接到MySQL数据库,...

    Mybatis配置示例代码

    Mybatis是一款轻量级的Java持久层框架,它允许开发者将SQL语句直接写在XML配置文件或注解中,提供了灵活的映射机制,使得Java对象与数据库表之间的映射变得简单。在这个名为"Mybatis配置示例代码"的压缩包中,我们...

    spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码

    MyBatis的多数据源配置可以通过配置多个MapperFactoryBean和DataSource来实现,每个数据源对应一个特定的配置文件和数据连接。 在Spring Boot 2中,实现多数据源的基本步骤包括: 1. **配置DataSource**:创建两个...

Global site tag (gtag.js) - Google Analytics