码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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()
    /** 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"));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    /** 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"); //构建查询命令(即查询语句)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    
    
    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    项目地址:

    • https://gitee.com/noear/wood
    • https://github.com/noear/wood
  • 相关阅读:
    【C++类型转换】4种类型转换:static_cast、reinterpret_cast、const_cast、dynamic_cast
    2021-NeurlPS-RUl论文对应源码的复现过程记录
    C6000教学实验箱_嵌入式操作教程_音频编码:3-7 G711A音频编码实验
    大语言模型隐私防泄漏:差分隐私、参数高效化
    ODOO 之aliyun OSS模块介绍
    CS SD NAND在STM32精英V2开发板的测试-是时候将TF卡换为SD NAND了
    RocketMq(五)消息机制
    【数之道 05】走进神经网络模型、机器学习的世界
    arm day2(9.15)数据操作指令,跳转指令,特殊功能寄存器指令,+XMind
    论文阅读:自适应ViT(A-ViT)
  • 原文地址:https://blog.csdn.net/cwzb/article/details/132916176
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号