Wood, ein Micro-Java-ORM-Framework (unterstützt: Java SQL, XML SQL, Annotation SQL, Transaktionen, Cache, Überwachung usw.), keine Abhängigkeiten!
Funktionen und Konzepte:
- Plattformübergreifend: Kann in JVM-Skript-Engines (JS, Groovy, Lua, Python, Ruby) und einige von GraalVM unterstützte Sprachen eingebettet werden.
- Sehr klein: 0,2 MB (und verfügt über vollständige Funktionen und umfangreiche Lösungen; es kann die Datenbankentwicklung erheblich vereinfachen).
- Persönlichkeit: Ich mag keine Reflexion (ich konzentriere mich hauptsächlich auf schwache Typen) und ich mag keine Konfiguration (außer der Verbindung ist keine Konfiguration erforderlich).
- Sonstiges: Unterstützt Cache-Steuerung und datenbankübergreifende Transaktionen.
Kernobjekte und Funktionen:
- Kontext: DbContext db
- Vier Schnittstellen: db.mapper(), db.table(), db.call(), db.sql()
/** BaseMapper 用法 */
//BaseMapper 接口
db.mapperBase(User.class).selectById(1);
//BaseMapper 接口,lambda 条件查询
db.mapperBase(User.class).selectList(mq->mq
.whereLt(User::getGroup,1)
.andEq(User::getLabel,"T"));
/** Table用法 */
//增::
db.table("user").setEntity(user).insert();
db.table("user").setMap(map).insert();
db.table("user").setMap(map).insertAsCmd(); //构建查询命令(即查询语句)
//删::
db.table("user").whereEq("id",2).delete();
//改::
db.table("user").set("sex",1).whereEq("id",2).update();
db.table("user").setInc("level",1).whereEq("id",2).update(); //字段自+1
//查::
db.table("user u")
.innerJoin("user_ext e").onEq("u.id","e.user_id")
.whereEq("u.id",1001)
.selectItem("u.*,e.sex,e.label", User.class);
db.table("user u")
.innerJoin("user_ext e").onEq("u.id","e.user_id")
.whereEq("u.id",1001)
.selectAsCmd("u.*,e.sex,e.label"); //构建查询命令(即查询语句)
<!-- Xml 用法 -->
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//noear.org//DTD Mapper 3.0//EN" "http://noear.org/dtd/wood-mapper.dtd">
<mapper namespace="wood_demo.xmlsql2"
import="demo.model.*"
baseMapper="UserModel">
<sql id="getUser" return="UserModel" remarks="获取用户信息">
SELECT * FROM user WHERE id = @{id:int}
</sql>
</mapper>