mybatis对于list更新sql语句的写法说明

目录
  • 对于list更新sql语句的写法
    • 批量更新
  • mybatis动态更新sql语句
    • 注意参数是实体

对于list更新sql语句的写法

批量更新

<update id="updateConfigureNames" parameterType="java.util.List">
    <foreach collection="list" item="item" index="index" open=""
        close="" separator=";">
        update configure
        <set>
            configure_name=#{item.configureName}
        </set>
        where id = #{item.id,jdbcType=VARCHAR}
    </foreach>
</update>

在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的

主要有一下3种情况:

  • 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
  • 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
  • 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可

mybatis动态更新sql语句

注意参数是实体

<!--更新-->
<update id="updateOne" parameterType="com.entity.GovernmentDetail">
    UPDATE GOVERNMENT_DETAIL
    <trim prefix="set" suffixOverrides=",">
        <if test="UNIT_TYPE!=null">unitType=#{unitType},</if>
        <if test="PLAT_CODE!=null">plateCode=#{plateCode},</if>
        <if test="DESCRIP!=null">descrip=#{descrip},</if>
        <if test="BUSINESS_GUID!=null">businessGuid=#{businessGuid},</if>
        <if test="HOT_LINE!=null">hotLine=#{hotLine},</if>
        <if test="LINE_ADRESS!=null">lineAdress=#{lineAdress},</if>
        <if test="EXTEND1!=null">extend1=#{extend1},</if>
        <if test="EXTEND2!=null">extend2=#{extend2},</if>
    </trim>
    WHERE ID=#{id}
</update>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • mybatis update更新字段的使用操作

    多个mapper方法,更新单字段 说实话不太推荐,因为如果有10个字段要更新,难道写10个方法. 但是实际中很多人都这么写. 通用mapper方法,java代码控制字段 特点是一个mapper方法包含所有字段,不为空的就update. 但是需要控制入参,一般有2中方式: new 一个对象然后set id和要改的字段 如果字段多比较费劲,需要一个一个set. 查询出对象,然后set要改的字段 这2种方式差不多,就是代码看起来不一样. 特别注意,定位字段不要加if 要更新的字段加if没有什么问题 但

  • Mybatis注解方式完成输入参数为list的SQL语句拼接方式

    目录 Mybatis注解完成输入参数为list的SQL语句拼接 拼接查询条件为list集合的sql函数 Mybatis注解完成输入参数为list的SQL语句拼接 首先将list集合拼接成一个"1,2,3,4"格式的字符串 然后将这个字符串封装到一个类中:TyreInfoIdStr 这里的@SelectProvider是调用一个外部的类的方法的返回值作为sql语句. 在这个方法中拼接SQL语句与list集合的字符串,我这里是提前拼接过了. 拼接查询条件为list集合的sql函数 当dep

  • Mybatis批量操作sql写法示例(批量新增、更新)

    在使用foreach时,collection属性值的三种情况: 如果传入的参数类型为List时,collection的默认属性值为list,同样可以使用@Param注解自定义keyName; 如果传入的参数类型为array时,collection的默认属性值为array,同样可以使用@Param注解自定义keyName; 如果传入的参数类型为Map时,collection的属性值可为三种情况: 1.遍历map.keys; 2.遍历map.values; 3.遍历map.entrySet() 批量

  • Mybatis批量更新三种方式的实现

    Mybatis实现批量更新操作 方式一: <update id="updateBatch" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";">

  • mybatis对于list更新sql语句的写法说明

    目录 对于list更新sql语句的写法 批量更新 mybatis动态更新sql语句 注意参数是实体 对于list更新sql语句的写法 批量更新 <update id="updateConfigureNames" parameterType="java.util.List">     <foreach collection="list" item="item" index="index" o

  • Mybatis中的动态SQL语句解析

    这篇文章主要介绍了Mybatis中的动态SQL语句解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Mybatis中配置SQL有两种方式,一种是利用xml 方式进行配置,一种是利用注解进行配置. Mybatis使用注解配置SQL,但是由于配置功能受限,而且对于复杂的SQL而言可读性很差,所以很少使用. Mybatis常用xml配置的方式,使用xml的几个简单的元素,便能完成动态SQL的功能,大量的判断都可以在mybaties的映射xml里面配

  • 基于更新SQL语句理解MySQL锁定详解

    前言 MySQL数据库锁是实现数据一致性,解决并发问题的重要手段.数据库是一个多用户共享的资源,当出现并发的时候,就会导致出现各种各样奇怪的问题,就像程序代码一样,出现多线程并发的时候,如果不做特殊控制的话,就会出现意外的事情,比如"脏"数据.修改丢失等问题.所以数据库并发需要使用事务来控制,事务并发问题需要数据库锁来控制,所以数据库锁是跟并发控制和事务联系在一起的. 本文主要描述基于更新SQL语句来理解MySQL锁定.下面话不多说了,来一起看看详细的介绍吧 一.构造环境 (root@

  • Mybatis如何直接执行SQL语句

    目录 Mybatis直接执行SQL语句 第一种方法 第二种方法 测试Mybatis执行SQL语句步骤 mybatis核心类:SqlSessionFactory 举例 Mybatis直接执行SQL语句 有时候我们如果要对传入的SQL验证语法方面怎么办呢,首先我们是不是要有一条完整的SQL,而且让mybatis去执行,这是小白最近遇到的,对于用户输入进来的语法与参数,进行拼接并且去执行,判断SQL语句有没有语法错误. 第一种方法 建立一个SQL工具进行SQL处理再返回完整的SQL语句 1.建立工具类

  • mybatis教程之动态sql语句_动力节点Java学院整理

    有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql. 下文均采用mysql语法和函数(例如字符串链接函数CONCAT). selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使用myBatis的selec

  • idea mybatis配置log4j打印sql语句的示例

    在IDEA中配置log4j,步骤很简单 1.在Maven中加入以下配置 <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>log4j</g

  • Mybatis如何自动生成sql语句

    目录 Mybatis自动生成sql语句 Mybatis的动态sql语句 if标签的使用 where标签的使用 foreach标签的使用 sql语句的简化编写 Mybatis自动生成sql语句 创建maven项目,将该配置文件运行即可生成 sql 语句 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org/

  • mybatis 对于生成的sql语句 自动加上单引号的情况详解

    目录 对于生成的sql语句 自动加上单引号的情况 mySQL中replace的用法 mybatis中IFNULL(P1,P2)函数的用法 mybatis单引号字母逻辑处理的一个坑 原因分析 对于生成的sql语句 自动加上单引号的情况 mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区分 mySQL中replace的用法 1.replace into replace into table (id,name) values('1','aa'),('2'

  • php执行sql语句的写法

    复制代码 代码如下: <?php @mysql_connect("localhost", "root","1981427") //选择数据库之前需要先连接数据库服务器 or die("数据库服务器连接失败"); @mysql_select_db("test") //选择数据库mydb or die("数据库不存在或不可用"); $query = @mysql_query("

  • Mybatis基于注解形式的sql语句生成实例代码

    对其做了些优化,但此种sql生成方式仅适用于复杂程度不高的sql,所以实用性不是很高,仅仅是写着玩的,知道点mybatis的注解形式的使用方式,可能以后会逐渐完善起来.第一次写博客,写的简单点. package com.bob.config.mvc.mybatis; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retenti

随机推荐