1
VincentWang 2022-07-15 13:53:52 +08:00 4
JPA / Hibernate
|
2
jiulang 2022-07-15 13:54:26 +08:00 1
当然 efcore 最好用
|
3
masterclock 2022-07-15 13:54:48 +08:00 2
scala doobie/quill
|
4
hervey0424 2022-07-15 13:54:49 +08:00 1
efcore
|
5
terranboy 2022-07-15 13:54:50 +08:00 1
难道你要因为哪个 orm 好用再去选择语言? 熟悉哪个语言就用哪个语言的 orm 我觉得现代的 orm 都差不多
|
6
lululau 2022-07-15 13:56:49 +08:00 21
“不是我针对谁,我是说,在座的各位都是垃圾”
—— Rails Active Record |
7
NPC666 2022-07-15 13:56:50 +08:00 via Android 1
FreeSQL
|
8
wangkun025 2022-07-15 13:57:31 +08:00 1
难道不是祖师爷 Rails 吗?
|
9
xiaket 2022-07-15 13:59:22 +08:00
Django
|
10
yodhcn OP @terranboy #5 我觉得现代的编程语言也差不多... 而且我也没有对哪一编程语言特别熟悉,现在还是面向 stackoverflow 编程
|
11
pepesii 2022-07-15 14:02:01 +08:00
rails 呀
|
12
ifdef 2022-07-15 14:02:42 +08:00
typeorm 支持 query builder
|
13
qichunren 2022-07-15 14:03:04 +08:00
“不是我针对谁,我是说,在座的各位都是垃圾”
—— Rails Active Record |
14
deepall 2022-07-15 14:04:33 +08:00
“不是我针对谁,我是说,在座的各位都是垃圾”
—— Rails Active Record |
15
gam2046 2022-07-15 14:20:13 +08:00
我觉得 ORM 能提供数据库类型到编程语言类型的转换功能就足够了。手写 SQL 无论如何都跑不掉,既然跑不掉都自己也没关系。
|
16
fo2w 2022-07-15 14:20:23 +08:00
“不是我针对谁,我是说,在座的各位都是垃圾”
—— Rails Active Record |
17
yodhcn OP 看到诸位都在复读 Rails ,Google 了一下,这是一个曾经很流行的框架,后面的很多 web 框架都有借鉴它,但在我印象里,至少在国内 ruby 并不流行?
而且用过了 typescript 后,我现在更偏好 强类型 /有类型注释 的动态语言 |
18
FightPig 2022-07-15 14:23:16 +08:00
Rails 的 ActiveRecord
|
19
haolongsun 2022-07-15 14:26:14 +08:00
Django
|
20
masterclock 2022-07-15 14:32:01 +08:00
ORM 怎么着也得强类型、静态类型吧 [doge]
|
21
liuhan907 2022-07-15 14:43:24 +08:00
efcore ,没别的。
|
22
mizuhashi 2022-07-15 14:44:05 +08:00 via iPhone
rails 的关键是 scope 是一种代数,可以自由组合,一般的 query builder 没这功能。另外 rails 的路由是一个有限自动机,而不是别的那样一个正则列表遍历。
|
23
bthulu 2022-07-15 14:45:56 +08:00
efcore 好用个屁, 批量更新都没出来, 还要 7.0 版才出
|
24
bthulu 2022-07-15 14:48:02 +08:00
就是那种最简单的, update xxx set xx=xx where xx=xx, efcore 都搞不定, 要先通过 where xx=xx 全部查出来, 再循环修改完成后, 再 saveChanges.
详见 https://github.com/dotnet/efcore/issues/795 |
25
panlatent 2022-07-15 14:49:33 +08:00
如果需要用到框架,那有一点需要考虑:ORM 跟框架的适配度,这点一般框架内置的 ORM 都比较优秀。需要考虑的是否需要支持 SQL Builder 。还有就是怎样使用 ORM , 是只用来跟数据库打交道还是贯穿整个应用,这些对 ORM 的要求肯定不一样。
一般都是选定语言再去比较 ORM , 全语言的话,好用程度应该是动态类型语言 > 静态类型语言, 脚本语言 > 编译语言,建模能力强,语法糖多的 > 语法简单、设施少的语言。 |
26
themostlazyman 2022-07-15 14:56:20 +08:00
MyBatis-Plus
|
27
Cyanhall 2022-07-15 14:57:48 +08:00 2
Python 我选 SQLAlchemy
Golang 我选 Ent |
28
konnnnn 2022-07-15 14:58:07 +08:00
ecto
|
29
hingbong 2022-07-15 15:01:19 +08:00
jvm 的 JOOQ 吧
|
30
ByteCat 2022-07-15 15:01:37 +08:00
Hibernate
|
31
wanguorui123 2022-07-15 15:02:41 +08:00
NHibernate
|
32
pengtdyd 2022-07-15 15:04:24 +08:00
prisma
|
33
nine 2022-07-15 15:08:37 +08:00
ORM 肯定是 Rails 了,其他语言根本抄不来的,原因就是 Ruby 的语言特性。
Rails 后端开发体验,对任何语言框架都是秒杀。(不含 js ) Rails 仿体最好的是 Elixir 的 Phoniex ,性能出众,然而语言太小众了,生产场合基本不会选择他。 |
34
XCFOX 2022-07-15 15:10:42 +08:00 2
https://mikro-orm.io/
TypeScript 的 Mikro Orm 真的很不错 ✅ 类型安全 ✅ 隐式事务 ✅ 使用 TypeScript 的 class 和装饰器定义 POJO ✅ 超强的 Query Builder (内置 knex ) |
35
chrisia 2022-07-15 15:11:36 +08:00
ActiveRecord
|
36
XCFOX 2022-07-15 15:15:15 +08:00
prisma 的问题是它使用自己的一套 DDL(Prisma schema) 去定义 POJO ,而它的 DDL 又不如 TypeScript 好用:无法继承、无法 export ,无法和 class-validator 等库共用。
|
37
wellerman 2022-07-15 15:34:52 +08:00
laravel Eloquent + migration 又快又好
|
38
james2013 2022-07-15 15:47:38 +08:00
MyBatis-Plus
|
39
iwdmb 2022-07-15 15:51:16 +08:00
Rails ActiveRecord
时代的眼泪 |
40
wxlwsy 2022-07-15 15:54:01 +08:00
我目前用的是 mybatis,用法是这样的:
1 数据库的手动写. 2 用 maven 插件 生成模板类 ,不关心内生成的 java 是啥牛鬼蛇神,反正数据库咋样代码都是有的,然后打成 jar 3 项目依赖刚才生产 jar, 然后写个 Dao 就用 mybatis dynamic SQL. 可以不用手写 sql 了....... 4 程序只操作 DAO.不关心后面的事情. 实际上最简单的就是手写 sql, 但是手写 sql 最大的问题是数据库变了,编译器检查不了问题,因为那是 String. 完全用 java 的话,重新打包,字段变量马上报警(如果数据库新增字段除外). |
41
zzf 2022-07-15 16:17:39 +08:00
ecto
|
42
jininij 2022-07-15 16:29:57 +08:00 via iPhone 3
yii2 的 ActiveRecord ,虽然不写 PHP 已经很多年,但还是很怀念这个 ORM 。我用过最舒服的 orm 没有之一。外加我自己实现的增强 gii ,成为我的舒适区了。后来写 js ,写 python ,写 java ,用什么 ORM 都觉得浑身不舒服。
|
43
87B3F508 2022-07-15 16:30:05 +08:00
Jooq 好用
|
44
Baloneo 2022-07-15 16:31:46 +08:00
Peewee
|
45
IMengXin 2022-07-15 16:32:41 +08:00
目前在用的:SqlSugar
|
46
zxCoder 2022-07-15 16:38:34 +08:00
不都一样吗,没啥大区别
|
47
StarkWhite 2022-07-15 17:11:12 +08:00
graphql 了解一下。都 9102 年了,大家有没有用上 Facebook 出的 GraphQL ?
https://v2ex.com/t/589138 |
48
flowerains 2022-07-15 17:12:10 +08:00
@jininij 俺也用过 yii ,确实挺怀念 activeRecord 的,可能是其他的 thinkphp 的 orm 太垃了
|
49
StarkWhite 2022-07-15 17:17:00 +08:00
@bthulu 这也太拉了吧😂
|
50
lancelock 2022-07-15 17:19:01 +08:00
freesql
|
51
haolongsun 2022-07-15 17:19:21 +08:00
另外也安利一下 rust 下的 sea-orm.
|
52
Lattez 2022-07-15 17:20:15 +08:00
sqlalchemy
|
53
ll5270 2022-07-15 17:23:00 +08:00
django
|
54
shyling 2022-07-15 17:36:37 +08:00
activerecord 啊。。
|
55
learningman 2022-07-15 17:38:41 +08:00 via Android
@StarkWhite graphql 是传输协议,又不是 orm
|
56
LeegoYih 2022-07-15 17:54:28 +08:00
Java:JPA (实名抵制 MyBatis 和三流插件 MyBatis-Plus ,本质上 ORM 都不算)
Ruby:Rails (众多框架“借鉴”的对象) Python:SQLAlchemy Go:没一个好用的,受限于语言本身 |
57
moell 2022-07-15 18:00:04 +08:00
Eloquent ORM
|
58
lp7631010 2022-07-15 18:11:11 +08:00
基本上 php laravel 用起来都不怎么需要去拼写 sql, orm 起码能完成日常 95%以上操作,动态语言搞 orm 是天生的优势
|
59
233373 2022-07-15 18:17:55 +08:00
Django
|
60
qfdk 2022-07-15 18:20:31 +08:00 via iPhone
objection.js
|
61
min 2022-07-15 18:26:02 +08:00
ef
|
62
frodez 2022-07-15 18:29:54 +08:00
rust 的 sqlx ,不过不是 orm 级别的库。
|
63
angelface 2022-07-15 18:46:14 +08:00
要说写的爽, 那 Rails 的 AR 真的是无人能出其右。
干净利索,非常自然 |
64
kingjpa 2022-07-15 18:48:07 +08:00
静态语言的 orm 就不要拿来说了,和动态语言比 就是幼稚园和大学生的差距。
反过来比性能,角色互换 |
65
evlos 2022-07-15 18:48:29 +08:00 via iPhone
ActiveRecord
|
66
lovepplforever 2022-07-15 18:56:51 +08:00
Rails 的 ActiveRecord 是最屌的
|
67
WispZhan 2022-07-15 19:56:36 +08:00 via Android
没人提 groovy 的 grails 啊,不过没错看名字就知道是抄的 rails
|
68
wuhaoworld 2022-07-15 20:05:08 +08:00
必须得是 Laravel 下的 Eloquent ORM
|
69
zorui 2022-07-15 20:30:00 +08:00
c# LINQ
|
70
zoharSoul 2022-07-15 20:46:34 +08:00
mybatis, 喜欢这种写 sql 的
|
71
ychost 2022-07-15 20:51:49 +08:00
EntityFramework 配合 C# 的 Linq 是最好用的,Linq YYDS
|
72
lkk 2022-07-15 20:54:40 +08:00
Ruby 在中国不流行大概是因为它名字取的不好,弱逼。
|
73
youngce 2022-07-15 21:10:19 +08:00
django
|
75
varzy 2022-07-15 21:29:29 +08:00
Laravel 的 Eloquent ORM 。说实话我几乎不会写 sql ,只有 Laravel 的 Eloquent ORM 能做到让我一行 sql 都不写把项目做出来。。。。
|
76
CookCoder 2022-07-15 21:30:32 +08:00
PHP Laravel ORM
|
77
rajab 2022-07-15 21:34:55 +08:00 via Android
ebean
|
79
zhouyg 2022-07-15 22:01:49 +08:00
好奇 OP 说的“麻烦一点的查询”是怎么样的,基于 prisma 关系的查找为啥搞不定呢
|
80
dqzcwxb 2022-07-15 22:05:07 +08:00 1
tkmapper,兼容原生 mybatis 且支持多种数据库
你爱手写 sql 就手写,你爱用 jpa 语法就 jpa 语法一切自由 |
81
Features 2022-07-15 22:05:51 +08:00
Eloquent ORM 懒人福音
|
82
xgdgsc 2022-07-15 22:06:55 +08:00 via Android
对 Julia 感兴趣的话可以看下 PostgresORM.jl 和 Searchlight.jl ,目前可能不是最完备的,但对你参与开发可能最友好
|
83
Rache1 2022-07-15 22:11:02 +08:00
|
84
gotounix 2022-07-15 22:12:39 +08:00 1
SQLAlchemy ,MyBatis 这种半自动的感觉不伦不类。
|
85
jarontai 2022-07-15 22:26:41 +08:00 via iPhone
巧了,最近我们也开始用 TS 的 orm ,选的是 MikroOrm ,支持 mongo 和 mysql ,支持 query builder ,底层也应该有用 knex ,还没有深度使用但感觉良好
|
86
gowk 2022-07-15 22:40:06 +08:00
我站 Entity Framework
|
87
6167 2022-07-15 23:09:54 +08:00
sqlalchemy
|
88
815979670 2022-07-15 23:28:36 +08:00
我投 Yii2 一票,本身会的语言不多 PHP 然后会写一点 GO ,Go 的话 有接触 GORM ,PHP 的话 主流的框架基本都用过,但感觉最舒服只有 Yii2 的 ORM
|
89
afewok 2022-07-15 23:59:23 +08:00
手写 SQL 才是最简单,最好用的
|
90
runliuv 2022-07-16 00:04:56 +08:00 1
“不是我针对谁,我是说,在座的各位都是垃圾”
-- C#.NET Entity Framework. |
91
yedanten 2022-07-16 00:30:01 +08:00 via Android
PHP Laravel Eloquent 是真的好用,完完全全,0 心智负担
|
92
lanlanye 2022-07-16 00:51:08 +08:00
如果想要代码代替手写 SQL 的那种 Builder 的话,SQLAlchemy 不错,基本能写 SQL 的都可以写 Python 实现,虽然写起来跟直接写 SQL 也没啥区别。
如果是 Active Record 那种简单需求的话,毫无疑问是 Rails 的体验秒杀其他工具。 |
93
Leviathann 2022-07-16 01:06:27 +08:00
快 100 楼了没有一行代码展示是怎么好用的
|
94
maocat 2022-07-16 01:52:13 +08:00 via iPhone
Python 的 mongoengine ,真的好用
|
95
lazywen 2022-07-16 02:46:43 +08:00 via Android
Rails ,Django 都很顺手,还有 jetbrains 出的 exposed 也挺好用的,另外 jpa 的状态管理巨坑,依赖数据库强一致性状态的程序慎用,crud 无所谓
|
96
StarkWhite 2022-07-16 02:59:30 +08:00
@Leviathann 坐等代码展示哈哈
|
97
StarkWhite 2022-07-16 03:00:24 +08:00
我记得阿里出了个 orm ,好像叫 fluentmybatis
|
98
mind3x 2022-07-16 05:38:53 +08:00
|
99
skinny 2022-07-16 07:38:45 +08:00
@bthulu 对,删除操作也是,得先查询再删除,感觉特别傻逼,稍微复杂点还得手写 SQL 。还有动态添加 ORDERBY 之类也是难用。
|
100
gongquanlin 2022-07-16 09:04:12 +08:00 3
用了 laravel 的 orm 之后现在转 java ,觉着 java 的 orm 都和 shi 一样难用,还得复写 sql 。就算 mybatis plus 又如何,唉
|