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

news/2024/7/10 22:14:40 标签: 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 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>

项目地址:

  • https://gitee.com/noear/wood
  • https://github.com/noear/wood

http://www.niftyadmin.cn/n/5028932.html

相关文章

git命令的操作

git命令操作及命令大全 1.创建一个新的本地仓库&#xff1a;2.添加文件到仓库&#xff1a;3.远程仓库操作&#xff1a;4.分支操作&#xff1a;5.git命令大全 1.创建一个新的本地仓库&#xff1a; 使用命令git init在本地目录中创建一个新的git仓库。 2.添加文件到仓库&#x…

Linux系统调试篇——GDB调试入门

文章目录 编写代码启动调试断点设置断点 变量查看单步调试 本篇讲解使用GDB调试Linux应用程序&#xff0c;以下以 hellowld.c 为例介绍 GDB 的调试入门&#xff1a; 编写代码 #include <stdio.h>int main(int argc, char **argv) {int i;int result 0;printf("hel…

座舱台架介绍与搭建流程

座舱台架介绍 车载测试中的座舱台架测试包括以下几个方面&#xff1a; 仪表盘&#xff1a;测试仪表盘的显示、功能、光线反射和防眩目性能等。评估仪表盘是否能够提供准确的驾驶信息&#xff0c;并能在各种光照条件下清晰可见。中控屏&#xff1a;测试中控屏的触摸响应、图像…

爬虫 — Json 模块和 Post 请求

目录 一、Json 模块1、定义2、方法2.1、json.dumps()2.2、json.loads()2.3、json.dump()2.4、json.load() 二、Post 请求三、Post 请求携带 Json 参数案例 一、Json 模块 1、定义 Json&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xf…

【Leetcode Sheet】Weekly Practice 6

Leetcode Test 2605 从两个数字数组里生成最小数字(9.5) 给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 &#xff0c;每个数组中的元素 互不相同 &#xff0c;请你返回 最小 的数字&#xff0c;两个数组都 至少 包含这个数字的某个数位。 提示&#xff1a; 1 < …

python pdf文件转图片

在Python中&#xff0c;有很多的第三方库可以用于PDF文件的转换&#xff0c;比如PyPDF2和pdf2image。 其中PyPDF2可以从PDF文件中提取每一页并将其保存为图像文件&#xff0c;需要安装Pillow库。 pdf2image则直接将PDF文件转换为PNG或JPEG图像文件&#xff0c;可以使用ImageM…

如何制作表情包gif图?一个方法分分钟制作

在现在网络通讯工具中gif表情包是必不可少的。很多时候&#xff0c;流行的gif表情包不太符合自己的需求&#xff0c;想要自己制作一个的时候应该怎么办呢&#xff1f;很简单通过使用gif动画制作&#xff08;https://www.gif.cn/&#xff09;工具-GIF中文网&#xff0c;无需下载…

v-model绑定导致的element UI文本框输入第一次值后被绑定,导致空文本框无法再输入文字

在工作岗位上&#xff0c;上边分配一个任务&#xff0c;创建一个页面&#xff0c;从0-1&#xff0c;全部自己搭建&#xff0c;也没有啥模版&#xff0c;就这么来&#xff0c;那就直接来吧&#xff0c;没办法&#xff0c;那就直接上手&#xff0c;开发过程中&#xff0c;我使用了…