您好,登錄后才能下訂單哦!
如何理解weed3-4.1開始注解sql的使用,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
源碼:https://github.com/noear/weed3 源碼:https://gitee.com/noear/weed3
1.項目開啟編譯參數(shù):-parameters
//申明mapper public interface DbMapper1{ @Sql("select * from appx where app_id = @{app_id} limit 1") AppxModel appx_get(int app_id) throws Exception; } //使用mapper DbMapper1 dm = db.mapper(DbMapper1.class); AppxModel m = dm.appx_get(1);
1.申明一個mapper
//加了替換符 //加了緩存控制 public interface DbMapper1{ @Sql(value = "select * from ${tb} where app_id = @{app_id} limit 1", caching = "test", cacheTag = "app_${app_id}") AppxModel appx_get(String tb, int app_id) throws Exception; }
2.使用它
DbContext db = new DbContext(...); DbMapper1 dm = db.mapper(DbMapper1.class); AppxModel m = dm.appx_get("appx",1);
${}
替代變量(相當(dāng)于占位符,進行字符串拼接)
@{}
編譯變量(會編譯為?,通過變量傳遞給jdbc)
caching
緩存服務(wù)
cacheTag
緩存標(biāo)簽(在key之上,建立的虛擬tag;為便于清理)
usingCache
緩存使用時間
cacheClear
緩存清理(通過cacheTag形式清理)
更新之后,清掉緩存:app_${app_id}
public interface DbMapper2{ @Sql(value = "update appx set name=@{name} where app_id = @{app_id}", caching = "test", cacheClear = "app_${app_id}") void appx_set(int app_id, String name) throws Exception; }
使用查詢結(jié)果構(gòu)建cahce tag:app_type${type}
public interface DbMapper3{ @Sql(value = "select * from appx where app_id = @{app_id} limit 1", caching = "test", cacheTag = "app_${app_id},app_type${type}") AppxModel appx_get(int app_id) throws Exception; }
//隨便寫在哪里 //1.初始化一個ICacheServiceEx //2.通過nameSet("test") 注冊到緩存庫 //3.之后就可以被 @sql的 caching 使用(xml sql 的 caching 同樣如此) // new LocalCache("test",60).nameSet("test");
關(guān)于如何理解weed3-4.1開始注解sql的使用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(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)容。