是否有 Hibernate 和 Mybatis 以外的第三种选择?

最近发现一种基于 Java17、SpringBoot3 和 JOOQ 的现代 Java 技术栈,可以作为 mybatis 和 hibernate 的第三种选择

一篇关于它的介绍

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

关于这第三种选择大家觉得相对 hibernate 和 mybatis 都有什么优势和劣势?查了一下在国外的社区 jooq 倒是挺流行的,国内的话用的不多,但是里面的编程思想可以借鉴。

另外,建议进大家最好从 https://www.mjga.cc 上下载代码来使用,这样能够确保获取到最新的代码,Github 上的代码主要作展示用,它的版本可能会落后于从 mjga.cc 下载的内容。

阅读 2.1k
3 个回答

玩具项目,随便用
小规模项目,这玩意是个商业产品有风险
商业项目,这玩意商业数据库需要 license,不合适

所以,凉

我觉得挺棒的,个人项目或者小公司基本都是使用开源数据库,拿来用用挺爽的。而且好像还支持R2DBC异步连接数据库。唯一的遗憾是不支持Hbernate那种二级缓存。


2024-10-27更新:

经过我的测试,发现还是有一些性能开销的,每次通过Jooq执行SQL,其实都是先生成SQL语句然后再执行,内部使用的是StringBuilder来拼接SQL,也可以将SQL语句缓存起来重复使用,但这样会很麻烦。
总之,就是一些取舍。方便了调用,那就会有一些内部的开销。

其实我比较喜欢Vertx那种DBClient,不用像Mybatis手动设置数据库与Java对象的类型映射,也不用像Jooq那样生成POJO代码。
只要配置好连接数据库账密,然后直接手写SQL查就行。查询的结果是框架给你包装好的类型,就类似于Map,然后用类似getString("数据库字段名")获取字段结果。
但这样也有个缺点:不利于重构,字段名全是字符串硬编码
不过也有解决办法:可以手动封装为POJO。重构时改一下封装方法就行。

新手上路,请多包涵

jooq这个在国内用的较少,另外还可以考虑jpa来实现数据库的增删改查,复杂的查询还是推荐使用sql的方式,性能才有保证

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏