• Springboot+Mybatis(Mysql 、Oracle) 注解和使用Xml两种方式批量添加数据


    1、使用注解的方式批量添加数据,在该方法中,传进来的参数是一个List集合,使用一个foreach 循环解析集合的数据,最后再批量保存到数据库

     代码如下:

    //批量保存
    @Insert({"<script>",
    "insert into QUESTION_BANK (NAME, SUBJECT, TYPE,OPTION_A,OPTION_B,OPTION_C,OPTION_D,OPTION_E,OPTION_F,ANSWER,IS_EXISTENCE) ",
    "SELECT A.* FROM (",
    "<foreach collection ='list' item='questionBanks' separator ='union all' >",
    "(SELECT " +
    "#{questionBanks.name} NAME," +
    "#{questionBanks.subject} SUBJECT," +
    "#{questionBanks.type} TYPE," +
    "#{questionBanks.optionA} OPTION_A," +
    "#{questionBanks.optionB} OPTION_B," +
    "#{questionBanks.optionC} OPTION_C," +
    "#{questionBanks.optionD} OPTION_D," +
    "#{questionBanks.optionE} OPTION_E," +
    "#{questionBanks.optionF} OPTION_F," +
    "#{questionBanks.answer} ANSWER," +
    "#{questionBanks.isExistence} IS_EXISTENCE FROM DUAL)",
    "</foreach> ) A",
    "</script>"
    })
    int saveAll(List<QuestionBank> questionBanks);
     
       

    第二种方式是springboot结合mybatis 使用xml文件时候的批量添加数据,在该方法中,传进来的同样是一个List集合数据,需要注意的地方已标红

     代码如下:

    <insert id="addUserGroupRelationList" parameterType="java.util.List">
    INSERT All
    <foreach collection="list" item="item" index="index">
    INTO USERGROUP_RELATION(ENTIEY_UUID,PARENT_UUID,SUPERIOR) VALUES
    (
    #{item.entieyUuid,jdbcType=VARCHAR},
    #{item.parentUuid,jdbcType=VARCHAR},
    #{item.superior,jdbcType=NUMERIC}
    )
    </foreach>
    SELECT 1 FROM dual
    </insert>
     
       

    上面两个添加语句使用的数据库都是Oracle,下面再来介绍一下使用XML 文件往Mysql数据库批量添加数据,不同的数据库批量添加使用的语句还是有一些小区别的,下面直接看代码吧:

      <insert id="saveAllExcelData" parameterType="java.util.List">
               INSERT  INTO sys_veterinary(
                     name,
                     address,
                     longitude,
                     latitude,
                     phone,
                     store_keeper,
                     scope,
                     skill)values
             <foreach collection="list" item="item" index="index" separator=",">
              (
               #{item.name,jdbcType=VARCHAR},
               #{item.address,jdbcType=VARCHAR},
               #{item.longitude,jdbcType=VARCHAR},
               #{item.latitude,jdbcType=VARCHAR},
               #{item.phone,jdbcType=VARCHAR},
               #{item.storeKeeper,jdbcType=VARCHAR},
               #{item.scope,jdbcType=VARCHAR},
               #{item.skill,jdbcType=VARCHAR}
               )
             </foreach>
      </insert>

     新增批量删除:(oracle数据库)

     <delete id="deleteById" parameterType="java.util.List">
            delete from User t where id in
            <foreach item="item" collection="list" open="(" separator="," close=")">
                #{item.userId,jdbcType=VARCHAR}     //传进来的是实体类集合,只要获取每条数据的id即可
            </foreach>
    </delete>

    小提示:一开始可以先用sql语句去数据库中运行添加,看能否成功添加,一般sql语句可以正常执行,再转换一下思路就能在代码中实现了。

     
  • 相关阅读:
    使用Netcat实现通信和反弹Shell
    PentesterLab----xss
    nmap实验
    xssgame20关
    使内网服务器访问外网
    lcx端口转发
    提权
    Nmap使用及常见的参数选项
    kali渗透metasploitable靶机
    我待Django如初恋(✪ω✪)的第一天💗
  • 原文地址:https://www.cnblogs.com/yanghr/p/12878415.html
Copyright © 2020-2023  润新知