一种基于 Java17、SpringBoot3 和 JOOQ 的现代 Java 技术栈 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chuck1in
V2EX    Java

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

  •  5
     
  •   chuck1in 2024-01-10 20:02:24 +08:00 5507 次点击
    这是一个创建于 640 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    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 条附言    2024-01-11 15:40:37 +08:00

    建议进大家最好从 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  
       2024-01-10 21:55:03 +08:00
    数据库作为一等公民?? 第一次听说这个说法,在网上没有搜到资料,我孤陋寡闻。可以介绍下吗?
    eote
        2
    eote  
       2024-01-11 00:43:53 +08:00
    jooq 不是收费的吗,你这是啥协议啊
    siweipancc
        3
    siweipancc  
       2024-01-11 01:13:06 +08:00 via iPhone
    你好,我需要部署到 oracle 数据库,可以 handle 这个需求吗。
    netabare
        4
    netabare  
       2024-01-11 07:49:29 +08:00 via Android   1
    jooq 是闭源的,这有很大的风险吧
    bthulu
        5
    bthulu  
       2024-01-11 08:22:08 +08:00   1
    @siweipancc 可以的, 交保护费就行
    clgon
        6
    clgon  
       2024-01-11 08:58:06 +08:00   1
    cenbiq
        7
    cenbiq  
       2024-01-11 10:09:07 +08:00   1
    每次看到其他语言的一些 ORM ,都不由的会感叹一下 C#的 ORM 有多么棒...
    bv
        8
    bv  
       2024-01-11 10:16:49 +08:00
    问下 jooq 需要根据表结构生成代码,在那一块儿?怎么生成的?
    chuck1in
        9
    chuck1in  
    OP
       2024-01-11 14:09:35 +08:00
    @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  
       2024-01-11 18:06:05 +08:00   1
    看来记错了,有开源版本的话还是蛮好的。纯 Java 的话这个语法比别家的 ORM 或 dbutils 舒服多了。
    Cyanhall
        11
    Cyanhall  
       2024-01-11 20:47:10 +08:00   1
    支持 JOOQ ,在自己的项目选型里面也用到了它;不过比较麻烦的是不支持根据 entity 自动生成建表 sql, 统一的分页查询处理写起来有点累赘,还没找到更好的解决办法。
    chuck1in
        12
    chuck1in  
    OP
       2024-01-27 12:06:58 +08:00
    今天将主页上和 github 中的代码进行了同步,包括 release https://github.com/ccmjga/mjga-scaffold/releases 也更新到了和主页上一致的版本,谢谢大家的支持。
    ychost
        13
    ychost  
       2024-02-16 17:33:05 +08:00
    @wenhuibrave DBFirst 、CodeFirst 这是 .NET 以前流行的最佳实践
    chuck1in
        14
    chuck1in  
    OP
       2024-02-16 17:57:57 +08:00
    @ychost .net 这套东西不管是框架也好,还是理念也好,甚至是用来编码的 IDE 也好,一直都是走的非常前面。
    ForMrFang
        15
    ForMrFang  
       2024-02-18 15:44:40 +08:00
    单就 crud 方面来说,跟 mybatis flex 有点像的样子.
    chuck1in
        16
    chuck1in  
    OP
       2024-02-18 16:55:08 +08:00
    @ForMrFang 我看了一下这个框架,里面有些 api (比如链式调用)使用起来,看起来确实和这个 jooq 确实有点像。不过 jooq 历史挺长了,10 多年了,估计底层设计区别还是很大。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3251 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World ispowered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:05 PVG 08:05 LAX 17:05 JFK 20:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86