实习程序员用世界上最好的语言造了一个 ORM 轮子

2017-01-03 16:10:51 +08:00
 mateor95

如题目所述,

请诸位大大帮我看看

项目地址: https://github.com/mateor95/ORM

文档地址: https://mateor.me/archives/61

8745 次点击
所在节点    PHP
74 条回复
incompatible
2017-01-03 19:10:47 +08:00
@q397064399 估计你对 Java 和 Hibernate 也不怎么了解。早期的 Hibernate 是需要手写 mapping schema 的,完全不需要反射。
sampeng
2017-01-03 19:25:09 +08:00
先学会走再去跑。。。我承认我也是看标题进来的
BigDipper7
2017-01-03 20:28:33 +08:00
😅尴尬,我也是堪称了最好的 ORM 框架,吓得我点进来了 - -
emlcj
2017-01-03 21:02:31 +08:00
这里贴一个没有反射的 C++ 实现 ORM 的例子,不过很糙 --> https://lcj.me/cde-modellei-shi-xian/
zpvip
2017-01-03 21:48:23 +08:00
我觉得楼主开个帖挺值的,在各位老师的帮助下,水平一下就提高了
mateor95
2017-01-03 22:12:21 +08:00
@zpvip 正是此意
qiukun
2017-01-03 23:09:16 +08:00
@emlcj 这就是反射。然后 relation 给你吃了?
roist
2017-01-03 23:39:43 +08:00
“造轮子”这个词算是不当翻译的一个模范了,“发明滚轮” 才是最准确的翻译
cuebyte
2017-01-04 01:59:52 +08:00
只有我在意没有类型检查么……

没有 schema 的 ORM 和咸鱼有什么区别?楼主你改成 mongo 的 ORM 算了
cuebyte
2017-01-04 02:01:39 +08:00
@q397064399 去看看 ORM 的鼻祖 ActiveRecord 吧,我谢谢您了。
cuebyte
2017-01-04 02:03:16 +08:00
@q397064399 不想看 ruby 也可以看 laravel 或 django 的 ORM
cuebyte
2017-01-04 02:08:56 +08:00
楼主可能做的项目比较不规范,很多表?

一个表一个实体类已经很轻松啦。数据库不也得 create table 各种定义么。

知足吧,某语言的 ORM 们,要定义类,要自己写 repository ,要写 xml ,还可能要在代码里写 sql 。

当然 JPA 还是很好的。
yegle
2017-01-04 02:40:53 +08:00
字符串拼接哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
msg7086
2017-01-04 07:04:54 +08:00
"任何一个库都要重新定义实体类?"

> 去看一下 Ruby on Rails 吧。
murmur
2017-01-04 08:06:11 +08:00
@cuebyte 手写 sql 是一种情怀,要不为啥 mybatis 现在能火,给我 sql 模板给我字段过滤就敢干活了
q397064399
2017-01-04 08:22:46 +08:00
@greatonce
@cuebyte

不管 xx , orm 的本质是告诉 框架一些信息,然后让框架帮我们去做一些重复又脏累的工作,
如果我 xx 还要自己拼接 sql ,或者让库来拼接 sql
如果简单的增删改查什么的,都得自己来映射结果集与对象 还要 orm 框架干吊?我自己手撸不行?
Mybatis 只解决了一部的问题,但是把查询方式暴露了出来,
你们知道 JPA 标准是可以直接写接口定义 让框架来代理实现的么?简单的博客之类的业务逻辑
我可以一行 sql 都不写就完成,连分页都不用写了,框架全给你做好,你只管定义接口就行
sagaxu
2017-01-04 08:34:04 +08:00
自从有了 spring boot 和 idea , java 撸 web 比 PHP 还方便
samtoto
2017-01-04 08:53:05 +08:00
chuanqirenwu
2017-01-04 09:53:35 +08:00
Javascript 才是世界上最好的语言。浏览器端就不说了,写数据库,写编译器,写 web 框架,写爬虫没有不能做的。
r00tt
2017-01-04 11:04:21 +08:00
Orm 还是看看 ActiveRecord 吧

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

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

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

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

© 2021 V2EX