千家信息网

如何理解weed3-4.1开始注解sql的使用

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,如何理解weed3-4.1开始注解sql的使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Weed3 一个微型ORM框架(只有0.
千家信息网最后更新 2024年11月26日如何理解weed3-4.1开始注解sql的使用

如何理解weed3-4.1开始注解sql的使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

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

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

使用约定***
  • 1.项目开启编译参数:-parameters

先来一个demo
//申明mapperpublic interface DbMapper1{    @Sql("select * from appx where app_id = @{app_id} limit 1")    AppxModel appx_get(int app_id) throws Exception;}//使用mapperDbMapper1 dm = db.mapper(DbMapper1.class);AppxModel m = dm.appx_get(1);
然后复杂一点点demo1
  • 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形式清理)

再来一个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");

关于如何理解weed3-4.1开始注解sql的使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0