Wood,微型 Java ORM 框架(首次发版)

Wood,微型 Java ORM 框架(支持:java sql,xml sql,annotation sql;事务;缓存;监控;等...),零依赖!

特点和理念:

  • 跨平台:可以嵌入到JVM脚本引擎(js, groovy, lua, python, ruby)及GraalVM支持的部分语言。
  • 很小巧:0.2Mb(且是功能完整,方案丰富;可极大简化数据库开发)。
  • 有个性:不喜欢反射(主打弱类型)、不喜欢配置(除了连接,不需要任何配置)。
  • 其它的:支持缓存控制和跨数据库事务。

核心对象和功能:

  • 上下文:DbContext db
  • 四个接口:db.mapper(), db.table(), db.call(), db.sql()
java 复制代码
/** 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"));
java 复制代码
/** 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 用法 -->
<?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>

项目地址:

相关推荐
架构源启10 小时前
文档接入与智能解析:基于 Spring AI 1.1.x 的多格式解析、版面理解与结构化抽取
java·人工智能·spring
大模型码小白14 小时前
JAVA 集合框架进阶:List 与 Set 的深度解析与实战
java·开发语言·人工智能·windows·语言模型·list·ai编程
名字还没想好☜14 小时前
Go 的 time.Ticker 陷阱:定时任务里被忽略的内存泄漏与正确关闭
java·数据库·golang·go·定时器
音符犹如代码15 小时前
后端视角看 EventBus:发布订阅总线的原理、场景与用法
java·spring boot·guava
前端炒粉15 小时前
手撕小汇总
java·前端·javascript
唐青枫15 小时前
Java Kafka 实战指南:从 Topic、分区到 Spring Boot 可靠消息处理
java
脱胎换骨-军哥16 小时前
C++零成本抽象理论深度拆解:现代C++如何在不牺牲性能的前提下提供高级语法封装
java·开发语言·c++
我是唐青枫16 小时前
Java Netty 实战指南:从 NIO 线程模型到 TCP 编解码和心跳机制
java·tcp/ip·nio
小白说大模型16 小时前
从向量嵌入到复杂 Agent:LLM、LangChain、LangGraph 完整科普
java·开发语言·人工智能·gpt·深度学习·langchain
ClouGence17 小时前
CloudDM 数据库管理平台,全新 UI,更清晰、更高效!
数据库·开源