代码改变世界Weed3 ORM框架专题

weed3-4.1.开始注解sql的使用

2019-10-29  本文已影响0人  草编椅

Weed3 一个微型ORM框架(只有0.1Mb哦)

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

使用约定***
先来一个demo
//申明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);
然后复杂一点点demo1
//加了替换符
//加了缓存控制
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;
}
DbContext db = new DbContext(...);

DbMapper1 dm = db.mapper(DbMapper1.class);
AppxModel m = dm.appx_get("appx",1); 
两种变量形式 + 缓存控制
两种变量形式
缓存控制
再来一个demo2

更新之后,清掉缓存: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;
}
再来一个demo3

使用查询结果构建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");
下一篇:5.事务和事务队列
上一篇下一篇

猜你喜欢

热点阅读