Weed3 一个微型ORM框架(只有0.1Mb哦)
源码:https://github.com/noear/weed3
源码:https://gitee.com/noear/weed3
关于存储过程的支持,设计了两个方案
- 1.对接数据库的存储过程调用
db.call("user_get").set("_user_id",1).getMap();
- 2.SQL查询过程(我叫它:查询过程)
看起来跟mybatis的SQL注解代码有点儿像
//由SQL构建的一个查询
db.call("SELECT * FROM user WHERE id=@{user_id}").set("user_id",1).getMap();
还可以对它们进行实体化(变成一个独立的类)
实体化的作用在于,可将数据处理安排到别的模块(或文件夹)
- 1.对接数据库的存储过程实体化
public class user_get extends DbStoredProcedure {
public user_get() {
super(DbConfig.test);
call("user_get");
set("_userID", () -> userID);
}
public long userID;
}
user_get sp =new user_get();
sp.userID=10;
Map<String,Object> map = sp.caching(cache).getMap();//顺带加个缓存
- 2.查询过程的实体化
public class user_get2 extends DbQueryProcedure {
public user_get2() {
super(db);
sql("select * from user where type=@{type} AND sex=@{sex}");
// 这个绑定写法,想了很久才想出来的(就是不想反射!)
set("type", () -> type);
set("sex", () -> sex);
}
public int type;
public int sex;
}
//DbQueryProcedure 提供了与 DbStoredProcedure 相同的接口
user_get2 sp =new user_get2();
sp.userID=10;
Map<String,Object> map = sp.caching(cache).getMap();