最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis如何一次性插入多條數(shù)據(jù)

 更新時(shí)間:2023年11月04日 08:45:40   作者:CCIEJohn_zhou  
這篇文章主要介紹了Mybatis如何一次性插入多條數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis一次性插入多條數(shù)據(jù)

使用Mybatis的Mapper.xml里面的<foreach>標(biāo)簽進(jìn)行循環(huán)插入

這種方法相對于controller層的for循環(huán)一條條的插入

不論是效率還是數(shù)據(jù)庫消耗都較之于后一種又很大提升

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <insert id="insertIntoUsers" parameterType="java.util.ArrayList">
        insert into `user`(uPassword,uName,uIDCard,uPhone,uEmail,uStatus) values
        <foreach collection="list" index="index" separator="," item="item">
            (#{item.uPassword},#{item.uName},#{item.uIDCard},#{item.uPhone},#{item.uEmail},#{item.uStatus})
        </foreach>
    </insert>
</mapper>

解釋

  • collerction:表示需要遍歷的類型基本上只有:list,array,Map這三中寫法。
  • index:表示循環(huán)的下標(biāo)。
  • separator:表示每個(gè)對象的分隔符(也是進(jìn)行下一次循環(huán)的標(biāo)識符)。
  • item:表示當(dāng)前循環(huán)對象。
  • open:以什么開頭。
  • close:以什么結(jié)尾。

提示

一般不要寫open,close,不然容易造成嵌套錯(cuò)誤。

nested exception is java.sql.SQLException: Column count doesn't match value count at row 1 

(嵌套異常:sql語句的列計(jì)數(shù)與第1行的值計(jì)數(shù)不相匹配)

特別注意

mysql默認(rèn)接受sql的大小是1048576(1M),List插入數(shù)據(jù)量超過1M會報(bào)如下異常:

(可通過調(diào)整MySQL安裝目錄下的my.ini文件中[mysqld]段的"max_allowed_packet = 1M")

nested exception is com.mysql.jdbc.PacketTooBigException: Packet for query is too large (5677854 > 1048576).

You can change this value on the server by setting the max_allowed_packet' variable.

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

江源县| 浮山县| 辉南县| 芜湖市| 故城县| 威远县| 通海县| 饶平县| 宣化县| 云安县| 鸡泽县| 岢岚县| 灵璧县| 隆德县| 大同县| 三门峡市| 伊川县| 大姚县| 定襄县| 清水河县| 镇江市| 南陵县| 洛宁县| 遂平县| 连城县| 西乌珠穆沁旗| 三台县| 英超| 桦甸市| 多伦县| 花莲市| 黑水县| 安远县| 洪湖市| 新巴尔虎左旗| 拉萨市| 剑河县| 开江县| 洛阳市| 陇西县| 巴塘县|