溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解weed3-2.2.插入和更新

發(fā)布時間:2021-09-29 15:58:32 來源:億速云 閱讀:147 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“如何理解weed3-2.2.插入和更新”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Weed3 一個微型ORM框架

源碼:https://github.com/noear/weed3 源碼:https://gitee.com/noear/weed3

這篇重點講講插入和更新的賦值
  • 支持常規(guī)賦值

String mobile="xxx"; //我的手機號不能寫

db.table("test")
  .set("mobile",mobile) //變量賦值
  .set("sex",1) //常量賦值
  .insert();
  • 支持sql附值(這個是可以帶來方便的***) 如果值以:$開頭,表示后面為SQL代碼(不能出現(xiàn)空隔,且100字符以內(nèi)。否則視為普通字符串值),如下:

//比如:當(dāng)前時間賦值
db.table("test").set("log_time","$NOW()").insert();

//再比如:字段加1附值
db.table("test").set("num","$num+1")
  .where("id=?",1).update();

//再比如:根據(jù)另一個字段的md5,批量更新
db.table("test").set("txt_md5","$MD5(txt)")
  .where("id>? AND id<?",1000,2000).update();


/* 如何開啟或禁用功能?(其實,它是挺安全的)*/

//1.只控制本次操作是否使用此功能
db.table("test").usingExpr(false) // true 開啟,false 關(guān)閉

//2.全局配置開啟或關(guān)掉這個功能:
WeedConfig.isUsingValueExpression=false; //全局默認(rèn)關(guān)掉
  • 支持map附值(字段不能是數(shù)據(jù)表里沒有的..)

Map<String,Object> map = new HashMap<>();
...

//插入
db.table("test").setMap(map).insert();

//更新
db.table("test").setMap(map).where("id=?",1).update();
  • 支持 entity 附值(字段不能是數(shù)據(jù)表里沒有的..)

UserModel user = new UserModel();

//插入
db.table("test").setEntity(user).insert();

//更新
db.table("test").setEntity(user).where("id=?",1).update();
  • 支持(沒有則插入,有則更新)的簡化操作

//簡化方案
db.table("test")
  .set("mobile","111")
  .set("sex",1)
  .set("icon","http://xxxx")
  .updateExt("mobile");

//此代碼相當(dāng)于:(下面這個可麻煩了很多哦)
if(db.talbe("test").where("mobile=?","111").exists()){
  db.talbe("test")
    .set("mobile","111")
    .set("sex",1)
    .set("icon","http://xxxx")
    .insert()
}else{
  db.talbe("test")
    .set("sex",1)
    .set("icon","http://xxxx")
    .where("mobile=?","111").update();  
}
  • 支持根據(jù)情況附值(講法來怪怪的..)

//1.老套跑
var qr = db.table("test").set("sex",1);
if(icon!=null){
  qr.set("icon",icon);
}
qr.where("mobile=?","111").update();  
//2.鏈?zhǔn)讲僮魈茁?
db.table("test").set("sex",1).expre((tb)->{ //加個表達(dá)式
  if(icon!=null){
    tb.set("icon",icon);
  }
}).where("mobile=?","111").update();

“如何理解weed3-2.2.插入和更新”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI