V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chuck1in
V2EX  ›  Java

一种基于 Java17、SpringBoot3 和 JOOQ 的现代 Java 技术栈

  •  5
     
  •   chuck1in · 319 天前 · 4257 次点击
    这是一个创建于 319 天前的主题,其中的信息可能已经有所发展或是发生改变。

    祝愿凡是进到这个帖子的坛友,在新的一年都身体健康、万事如意、平安吉祥、事业顺利~

    我是一个基于 Jdk17 、SpringBoot3 和 Jooq 打造的现代化技术栈,今天已上线支持在线选配 mysqlredis 的功能。

    JOOQ 是一个 CRUD 库,它用起来有点像 C# 的 LINQ

    mjga

    一份代码、一个配置、一种理念

    • 一份代码:通过 docker-compose.yml 管理应用程序及其环境的整个生命周期
    • 一个配置:通过 .env 文件自定义所有属性变量
    • 一种理念:将数据库作为一等公民

    我能为你带来

    • 身份认证、权限管理、缓存抽象等基础业务功能
    • Code Check&Format 、CI/CD Plugin 、Docker Integration 全部开箱即用
    • 完善的、从设计出发的、隔离了运行环境的单元测试
    • Make Java Great Again!

    我的性格

    • 现代化:技术选型紧跟开源社区风向
    • 可配置化:支持在网页上选配组件
    • 考究的编码:每个变量和函数、每个模块和组件都考虑最佳实践
    • Not-all-in-one:现在和未来,MJGA 都将守好自己的边界

    我的样子 mjga mjga

    第 1 条附言  ·  318 天前

    建议进大家最好从 https://www.mjga.cc 上下载代码来使用,这样能够确保获取到最新的代码。

    Github 上的代码主要作展示用,它的版本可能会落后于从 mjga.cc 下载的内容。目前 Github 上的版本落后主页上一个 PATCH version,主要是如 spring boot 3.1 -> 3.2 的库升级和单元测试的优化。

    如果不喜欢注册账号的话,当然也欢迎直接从 github 克隆。若还能顺手给一个 star 的话,这会对我有很大的鼓励和帮助,我会尽可能在今后的工作中保证主页和仓库的代码同步。

    另外,关于配套的 pmd 和 spotless IDEA 官方都提供了对应的插件,安装后可指定使用脚手架中附带的配置文件,直接在 IDE 中执行 code format 和 code check。

    16 条回复    2024-02-18 16:55:08 +08:00
    wenhuibrave
        1
    wenhuibrave  
       319 天前
    数据库作为一等公民?? 第一次听说这个说法,在网上没有搜到资料,我孤陋寡闻。可以介绍下吗?
    eote
        2
    eote  
       319 天前
    jooq 不是收费的吗,你这是啥协议啊
    siweipancc
        3
    siweipancc  
       319 天前 via iPhone
    你好,我需要部署到 oracle 数据库,可以 handle 这个需求吗。
    netabare
        4
    netabare  
       319 天前 via Android   ❤️ 1
    jooq 是闭源的,这有很大的风险吧
    bthulu
        5
    bthulu  
       319 天前   ❤️ 1
    @siweipancc 可以的, 交保护费就行
    clgon
        6
    clgon  
       319 天前   ❤️ 1
    cenbiq
        7
    cenbiq  
       319 天前   ❤️ 1
    每次看到其他语言的一些 ORM ,都不由的会感叹一下 C#的 ORM 有多么棒...
    bv
        8
    bv  
       319 天前
    问下 jooq 需要根据表结构生成代码,在那一块儿?怎么生成的?
    chuck1in
        9
    chuck1in  
    OP
       319 天前
    @wenhuibrave 这个是 JOOQ 这个框架的理念,来源是这里: https://www.jooq.org/#a=usp-database-first

    @siweipancc 你好,我查阅了一下相关信息,恐怕用开源版本的 JOOQ 操作 oracle 不是最佳实践,最好就像 bthulu 提到的使用收费版本。关于这一点有两个信息可供参考。1. https://github.com/jOOQ/jOOQ/issues/8218
    2. https://www.jooq.org/download/#databases

    @netabare
    @eote
    就像 clgon 提到的有开源版本,但是要注意开源版本并不是支持所有的数据库方言。

    @bv
    脚手架已经完成了 jooq generator 的集成配置(在 build.gradle.kts ),只需在本机上执行 generateJooq 这个 gradle 的插件就可以了。注意执行的时候确保 gradle 进程能够使用到环境变量文件(.env)中定义的各种属性。如果你是通过 docker 启动项目的话,这一切都是自动的。
    netabare
        10
    netabare  
       318 天前   ❤️ 1
    看来记错了,有开源版本的话还是蛮好的。纯 Java 的话这个语法比别家的 ORM 或 dbutils 舒服多了。
    Cyanhall
        11
    Cyanhall  
       318 天前   ❤️ 1
    支持 JOOQ ,在自己的项目选型里面也用到了它;不过比较麻烦的是不支持根据 entity 自动生成建表 sql, 统一的分页查询处理写起来有点累赘,还没找到更好的解决办法。
    chuck1in
        12
    chuck1in  
    OP
       303 天前
    今天将主页上和 github 中的代码进行了同步,包括 release https://github.com/ccmjga/mjga-scaffold/releases 也更新到了和主页上一致的版本,谢谢大家的支持。
    ychost
        13
    ychost  
       282 天前
    @wenhuibrave DBFirst 、CodeFirst 这是 .NET 以前流行的最佳实践
    chuck1in
        14
    chuck1in  
    OP
       282 天前
    @ychost .net 这套东西不管是框架也好,还是理念也好,甚至是用来编码的 IDE 也好,一直都是走的非常前面。
    ForMrFang
        15
    ForMrFang  
       280 天前
    单就 crud 方面来说,跟 mybatis flex 有点像的样子.
    chuck1in
        16
    chuck1in  
    OP
       280 天前
    @ForMrFang 我看了一下这个框架,里面有些 api (比如链式调用)使用起来,看起来确实和这个 jooq 确实有点像。不过 jooq 历史挺长了,10 多年了,估计底层设计区别还是很大。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 06:22 · PVG 14:22 · LAX 22:22 · JFK 01:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.