老哥们好,关于 Java ORM 选型的问题,有问题请教

157 天前
 Lnanvily

小弟是新人上路,正在使用 SpringCloud 进行一个娱乐直播平台小项目的练手开发,在选择 ORM 框架时看到大家的争论有点摸不清头脑。

TLDR:

小弟进行练手开发是为了尽快提高到能进入企业熟练打杂的水平,但是因不知道目前企业主流的方案而感到困扰,希望大佬们能指点一下 ORM 选型,小弟感激不尽

背景:

目前试用了 Mybatis+ MybatisPlus/tk.mapper/mybatis-mapper 几种方案 其中最有意向的时 Mybatis+Mybatis Plus 的方案,使用 mybatis 的 XML 写一些比较复杂的查询,用 MP 的 QueryWrapper 进行一些简单的查询。

tk.mapper/mybatis-mapper 用起来似乎与 quweryWrapper 区别不大,但写起来略感麻烦,不是很倾向使用 其他的 mybatis 方案如 fluent-mybatis,mybatis-flex 更是看的小弟眼花缭乱,这些框架的支持者都各有各的说辞,实在难以分辨

除 Mybatis 之外,小弟还注意到有 JPA+hibernate,以及 QueryDSL 等等五花八门的方案,各方的支持者也是你不让我我不让你

额外请求

打听到的公司目前使用的技术包括 SpringCloud,k8s,elasticSearch,kafka 等,各位大佬能否提供一些学习建议,小弟感激不尽。
4224 次点击
所在节点    Java
47 条回复
lsk569937453
157 天前
Mybatis+Mybatis Plus 无脑用这个方案就行了,使用量大,碰到的问题网上基本都有答案。
Stevenv
157 天前
Mybatis Plus 就成。国内主流。
我现在在用 JPA 也挺舒服
ByteCat
157 天前
选哪个都行,挑个自己喜欢的就好了。
一般的公司用 MyBatis 系( MyBatisPlus 之类)
我自己项目用 JPA ,现在换 JOOQ 了,更爽
0xD800
157 天前
mybatis-mapper 的 wrapper 比 mp 的 Lambda 好用一点,mp 的 lambda 还需要传类型才能获取到类型提示,mybatis-mapper 直接.wrapper().eq(getXXX, vv)就可以获得到类型提示。不过 mybatis-mapper 有一些功能要自己实现比如自动设置 createBy 、乐观锁字段,这些都有解决方案,可以加新版 mapper 群讨论
cheng6563
157 天前
Mybatis Plus 就行了,用的很广。

jpa 这类硬 orm 国内用的少,用起来稍微复杂一点的查询就非常蛋疼
shanai
157 天前
jpa + querydsl 配合有 QuerydslPredicateExecutor 可以做到不写 sql 用起来还是比较爽的
shanai
157 天前
@shanai 不过这个不是主流
txzh007
157 天前
看数据库怎么设计了.mp 最大的问题就是写 wrapper 会把数据库属性字段写到业务代码中,个人还是更喜欢 jpa
issakchill
157 天前
无脑 mp 吧
northernsongy2
157 天前
如果是学习为目的,那么看眼缘选一个,然后深入学学源码,如果是公司要求,那么就跟公司走
jlkm2010
157 天前
Mybatis+Mybatis Plus ,或者 BeetlSQL
Ayanokouji
157 天前
推荐个小众框架 https://ebean.io
nothingistrue
157 天前
选型是架构师(或者个人开发者)干得,并且是只在项目开工或重构期间才干的活,搬转码农就不要去想了。

新搬转的水平,九成九取决于过往搬转的经验和那期间对经验的总结和学习,非搬转期间的自学、实练什么的,(仅限对于将来搬转的影响)不能说毫无作用,只能说没啥卵用。

如果是纯粹的学习,那就无脑跟着 spring.io 以及它使用的第三方框架学。其他五花八门的方案,都只是工具,只有 Spring 体系是课程。
final7genesis
157 天前
mybatis plus 关联查询还是要写 sql 吧,jpa 配置下 onetomany manytomany 啥的 关联查询也不用写 sql
hdfg159
157 天前
无脑 mbp ,国内主流
zhenglinsmile
157 天前
第一次用 JPA 最近发现某几个表 明明只进行了一次修改 entity 也只有一次修改 但是看 sql 日志 就是被多更新了 5 次 目前还没找到原因…
xmtpw
157 天前
@Ayanokouji 看了下文档还不错啊,老哥稳
9c04C5dO01Sw5DNL
157 天前
Mybatis Plus 就行了,不要把时间浪费在这些 crud 框架上。终其一生也写不了多少 crud
Lnanvily
157 天前
非常感谢大佬们的指点,正在全力开码中...
dasbn
157 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1050236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX