您好,登錄后才能下訂單哦!
如何理解weed3-4.1開始注解sql的使用,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
源碼:https://github.com/noear/weed3 源碼:https://gitee.com/noear/weed3
1.項目開啟編譯參數:-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);
${}
替代變量(相當于占位符,進行字符串拼接)
@{}
編譯變量(會編譯為?,通過變量傳遞給jdbc)
caching
緩存服務
cacheTag
緩存標簽(在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; }
使用查詢結果構建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");
關于如何理解weed3-4.1開始注解sql的使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。