1. 程式人生 > >mybatis批量新增,修改

mybatis批量新增,修改

mybaitis的批量新增修改

新增:

<insert id="savelist" parameterType="java.util.List">
        
        insert into table1(
			a,
                        b,
                        c,
                        d
		) values 
        <foreach collection="list" item="l" index="index" separator=",">
	        (
				#{l.a},
				#{l.b},
				#{l.c},
				#{l.d}
			)
        </foreach>
    </insert>
批量新增時碰到的錯誤:Parameter '__frch_item_0' not found. Available parameters are [list] 
原因可能如下:

1.檢視parameterType的型別是不是Java.util.List型別

2.看foreach的collection屬性是不是list

3.看foreach裡取的屬性值是否寫錯,大小寫是否相同

4.檢視foreach裡取的屬性值實體物件中是否存在

尤其是第四條,我本來還想找能不能動態批量新增,但是並沒有找到。如果有哪個大神知道,麻煩評論告訴我,非常感謝

批量修改:

<update id="editlist" parameterType="java.util.Map">  
    update  table1 
    <trim prefix="set" suffixOverrides=",">  
        <!-- 拼接case when 這是一種寫法 -->  
        <!--<foreach collection="list" separator="" item="cus" open="c_age = case id" close="end, ">-->  
        <!--when #{cus.id} then #{cus.age}-->  
        <!--</foreach>-->  
  
        <!-- 拼接case when 這是另一種寫法,這種寫著更專業的感覺 -->  
        <trim prefix="b =case" suffix="end,">  
            <foreach collection="list" item="l">  
                <if test="l.b!=null and l.b != ''">  
                    when id = #{l.id} then #{l.b}  
                </if>  
            </foreach>  
        </trim> 
        <trim prefix="c =case" suffix="end,">  
            <foreach collection="list" item="l">  
                <if test="l.c!=null and l.c != ''">  
                    when id = #{l.id} then #{l.c}  
                </if>  
            </foreach>  
        </trim> 
        <trim prefix="d =case" suffix="end,">  
            <foreach collection="list" item="l">  
                <if test="l.d!=null and l.d != ''">  
                    when id = #{l.id} then #{l.d}  
                </if>  
            </foreach>  
        </trim> 
        
    <where>  
        <foreach collection="list" separator="or" item="l">  
id = #{l.id}
        </foreach>  
    </where>  
</update>
這個可以動態批量修改,還是很方便好用的

相關推薦

mybatis批量新增修改

mybaitis的批量新增修改新增:<insert id="savelist" parameterType="java.util.List"> insert into table1( a,

MyBatis批量新增修改和刪除

1. 批量新增元素session.insert(String string,Object o) public void batchInsertStudent() { List<Student> ls = new ArrayList<Student>

mybatis批量新增、刪除、查詢和修改

 每次寫批量的時候,都要在網上搜索一下,雖然都做過多次了,但具體的自己還是記不住(汗顏),所以索性今天就記錄下來。  前期說明:          foreach的主要用在構建in條件中,它可以在SQL語句中進行迭代一個集合。foreach元素的屬性主要有 item,inde

mybatis 批量新增修改

1、DAO層 int addStorageBatch(List<Storage> storageList); int updateStorageBatch(@Param("storageList") List<Storage> storageList); 2、xml

eclipse批量替換修改變量名或單詞(兩種方法)

.com 雙擊 方框 批量 ref lac cnblogs height ima 第一種(常用):   ①如圖:雙擊選中變量名id,右鍵選擇Refactor中的Rename   ②之後如下圖所示,紅箭頭的帶有方框的就是選中修改的變量名,此時修改提示框的內容,後面帶方框的也

【TP5.1】使用者組許可權管理(列表新增修改

author:咔咔 wechat:fangkangfk   在上一篇我們處理了使用者列表的分頁,這一篇文章寫使用者組的管理,也是需要到分頁的,所以我們就花倆分鐘搞一下子   這塊的業務就很簡單的,先上控制器程式碼   建立userG

第8講 8.2 SpringBoot 新增修改刪除操作

,BookController     1.新增add方法,      添加註解@RequestMapping(value="/add",method=RequestMethod.POST)指定post方式請求 &nb

mybatis批量新增時數字丟失精度問題

  背景:參與開發的系統A要與系統B互動,系統B使用的是SQLServer資料庫,為了快速開發當時想採用dblink實現,但為了安全性起見,還是採用介面實現,介面的客戶端和服務端都是自己寫,採用的Mybatis操作資料庫,批量插入。 問題:A系統的資料同步至B系統時,小數的精

###【mybatis批量插入不使用selective方式的SQL。各種事!!!】

=== ###【mybatis批量插入,不使用selective方式的SQL。各種事!!!】 =====簡單明瞭。 <!--addRules start --> <insert id="addRulesBatch" parameterType="java.uti

mybatis批量插入和修改sql

批量修改sql語句 1.批量修改方式一:(此種方式適用於針對每條的修改值都不同) 2.批量修改方式二:(此種方式適用於根據一個列的唯一標識修改相同的資料比如給表中新增預設值等操作) 3.批量插入方式: 1.批量修改方式

JavaEE SpringJDBC——update()新增修改刪除

update()方法可以完成插入,更新和刪除資料的操作,在JdbcTemplate類中,提供了一系列的update()方法, 接下來通過一個使用者管理的案例來演示update()方法的使用,具體步驟如下: 1、在chapter04專案下的com.itheima.jdk包中

Mybatis批量增加刪除更新Oracle

最近需要用到Mybatis批量新增oracle資料庫,剛開始在網上找到的方法是都是更新mySQL的,試了一下發現不適合Oracle,後來發現正確的oracle批量新增的sql是: <insert id="insertAttractionsBatch" parameterType="java.util.

mybatis批量update返回行數為-1

mybatis批量更新返回結果為1,是由於mybatis的defaultExExecutorType引起的, 它有三個執行器:SIMPLE 就是普通的執行器;REUSE 執行器會重用預處理語句(prepared statements); BATCH 執行器將重用語句並執行批量更新。

tinyxml刪除新增修改xml檔案

TinyXML是一個簡單的、小的、最小的、C + + XML解析器,可以很容易地整合到其他專案。它讀取XML和XML文件建立c++物件代表。可以操縱的物件,再次改變,並儲存為XML。 下面說下使用

Java(十二)--List的新增修改刪除

首先我們先建立課程類 /* * 課程類 */ public class Course { public String id; public String name; Course(){ } Course(St

當資料變化時(新增修改刪除)使用vuex實現頁面重新整理

專案情景如圖:  1.這是一個普通的查詢頁面,資料顯示在表格中,點選查詢,根據選項進行匹配查詢。 2.點選新增、修改、刪除操作,成功後會返回查詢頁面,並重新整理查詢結果。 使用vuex進行重新整理操作: 1.新建vuex檔案,   vuex.js const b

mybatis批量插入主鍵自增問題

<!--批量增加車輛經緯度記錄--> <insert id="addWycjwdjlTempBatch" > INSERT INTO wycjwdjl_temp (recordid, lng, lat, gpstime, speed, isabled

多臺伺服器批量增加修改crontab

shell指令碼 批量增加: # Local Cluser LOCAL="10.10.10.10" # for local crontab_cluster="$LOCAL" # For Tmp TMP_FILE="/tmp/crontab" #定義陣列lines

基於Easyui框架的datagrid繫結資料新增修改刪除方法(一)

基於Easyui框架的datagrid繫結資料,新增,修改,刪除方法 第一種:https://blog.csdn.net/u012949335/article/details/81943387 第二種:https://blog.csdn.net/u012949335/arti

基於Easyui框架的datagrid繫結資料新增修改刪除方法(三)

基於Easyui框架的datagrid繫結資料,新增,修改,刪除方法 第一種:https://blog.csdn.net/u012949335/article/details/81943387 第二種:https://blog.csdn.net/u012949335/arti