SQLServer和HSQLDB中使用mergeinto完成saveOrUpdate

當(dāng)我們調(diào)用 Hibernate 的  saveOrUpdate() 或 JPA 的 save() 方法的 Hibernate 實現(xiàn)時,都會做兩步操作:1)按 ID 查詢記錄是否已存在,2)不存在插入新記錄,存在則更新原記錄。這種兩步操作其實可以在 SQL Server 和 HSQLDB 中一條語句完成,這就是本文要介紹的 merge into 語句。感覺到用數(shù)據(jù)庫自己的特性,并且一條語句會比 saveOrUpdate() 兩步操作性能要好,還需實測。

在??诘鹊貐^(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站 網(wǎng)站設(shè)計制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),外貿(mào)營銷網(wǎng)站建設(shè),??诰W(wǎng)站建設(shè)費用合理。

之所以把 SQL Server 和 HSQLDB 扯到一塊來講,是因為我們在實際項目中的單元測試是基于 HSQLDB 內(nèi)存數(shù)據(jù)庫的。merge into 如其名所示,它應(yīng)該是給予我們便利的去根據(jù)把一個表中符合條件的記錄合并到另一個表中去。我們這里只利用它的這特性去實現(xiàn)類似 Hibernate 的 saveOrUpdate() 操作。

假設(shè)我們有一個簡單的表

CREATETABLE user (
  id INT, nameVARCHAR(32),
  address VARCHAR(128)
);

如果指 id 的記錄已存在更新原來記錄的 name 和  address, 不存在則插入新記錄 閱讀全文 >>

分享題目:SQLServer和HSQLDB中使用mergeinto完成saveOrUpdate
轉(zhuǎn)載源于:http://muchs.cn/article44/gcidhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、微信小程序網(wǎng)站策劃、Google、品牌網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)