mysql 資料庫中使用mybatis中使用replace into和 insert into … on duplicate key update
前提條件
根據某一字段不能進行重複(存在就更新,不存在就插入資料)
將字段設定為唯一索引 uniq_[欄位名稱]
一、replace into
replace into的用法與insert很相似,最終在表中的目的是插入一行新的資料。不同的是,當插入時出現主鍵或者唯一索引衝突的時候,會刪除原有記錄,重新插入新的記錄。因此,除非表具有主鍵或者唯一索引,否則使用replace into無任何意義(更新全部的資料,沒有預設值的資料為null)
replace into table_name
(product_id,departs_date,price_value)
values
(#,#,#)
二、insert into … on duplicate key update
insert into table_name
(product_id,departs_date,price_value,)
values
(#,#,#
on duplicate key update
price_type = values(price_type),
price_value = values(price_value)
例如:
insert into table_name
(product_id,departs_date,price_value,res_id)
values
(5152760,『2016-11-13』,『101.00』,10014012) ,(5152761,『2016-11-13』,『102.00』,10014012)
on duplicate key update price_value=values(price_value);
mybatis 批量操作
foreach屬性 屬性描述 item 迴圈體中的具體物件。支援屬性的點路徑訪問,如item.age,item.info.details。具體說明 在list和陣列中是其中的物件,在map中是value。該引數為必選。collection 要做foreach的物件,作為入參時,list 物件預設用l...
mybatis批量操作
查詢id在in裡面的測試 list測試 listselectidin param idlist listidlist 查詢id在in裡面的測試 map測試,就是id在乙個map中 listselectinmap param idmap hashmapidmap 修改所有id在list中的測試 int...
mybatis批量操作
應用場景 今天做了乙個插入資料的小功能,將含有50個物件的集合 list 插入到資料庫。自然而然的就要到了mybatis批量插入,記得剛參加工作時,類似場景我會寫乙個for迴圈,逐條插入資料。運算元據庫的時候會經過這樣乙個流程 建立 開啟 執行sql 關閉連線,建立和開啟資料庫連線對效能是有損失的,...