![]() | 1 VincentWang 2022-07-15 13:53:52 +08:00 ![]() JPA / Hibernate |
2 jiulang 2022-07-15 13:54:26 +08:00 ![]() 当然 efcore 最好用 |
![]() | 3 masterclock 2022-07-15 13:54:48 +08:00 ![]() scala doobie/quill |
4 hervey0424 2022-07-15 13:54:49 +08:00 ![]() efcore |
5 terranboy 2022-07-15 13:54:50 +08:00 ![]() 难道你要因为哪个 orm 好用再去选择语言? 熟悉哪个语言就用哪个语言的 orm 我觉得现代的 orm 都差不多 |
![]() | 6 lululau 2022-07-15 13:56:49 +08:00 ![]() “不是我针对谁,我是说,在座的各位都是垃圾” Rails Active Record |
![]() | 7 NPC666 2022-07-15 13:56:50 +08:00 via Android ![]() FreeSQL |
8 wangkun025 2022-07-15 13:57:31 +08:00 ![]() 难道不是祖师爷 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 ![]() 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 ![]() 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 ![]() 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 &nsp; 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:没一个好用的,受限于语言本身 |
![]() |
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 PRO 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 ![]() 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 ![]() 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 |
![]() | &nbp; 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 ![]() “不是我针对谁,我是说,在座的各位都是垃圾” -- 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 ![]() 用了 laravel 的 orm 之后现在转 java ,觉着 java 的 orm 都和 shi 一样难用,还得复写 sql 。就算 mybatis plus 又如何,唉 |