
天天看大家说 ORM ORM 但是 ORM 具体是什么好像也没说明白,谁能通俗解释下呢
1 wshcdr 2017 年 1 月 13 日 具体的案例就是比如 java 中的 Hibernate |
2 LancerXin 2017 年 1 月 13 日 可以很方便的将数据库里的数据读取出来放在内存里, 顺便将数据帮你转换成 bean 之类的, 顺便帮你管理一下数据库的事务之类的. 然后可以很方便的扩展查询条件的样子...... |
3 haozhang 2017 年 1 月 13 日 via iPhone 将所有的数据持久化相关的工作全部转成对象操作,屏蔽底层数据库的细节。 |
4 echo1937 2017 年 1 月 13 日 * OOP 的世界和 RDBMS 的鸿沟 * * OOP 的世界中数据是对象 * RDBMS 中数据是行列二元表 * ORM(Object/Relation Mapping) * * 持久化类和 table 之间的映射关系 * 对持久化对象的操作自动转换成对关系数据库操作 * RDBMS 的每一行映射为每一个对象 * RDBMS 的每一列映射为对象的每一个属性 ORM 帮助你在对象和记录之间做映射,你就可以继续愉快地操作你熟悉的对象了。 |
5 q397064399 2017 年 1 月 13 日 简而言之就是 将对象集合 映射成 数据库行列 将对对象的操作 映射成 SQL 语句 就这么简单,一般 ORM 框架自带多种自定义接口, 很多的常见需求的 SQL 都不用自己写,调接口就是了, JPA 规范里面 可以直接写就接口,然后让框架帮你 生成 SQL 优点:可以偷懒 省事 省时 缺点:复杂的查询就歇菜了, Hibernate 必备的技能就是 注入实体管理器,然后手动 SQL 组装对象,类似 Mybatis |
6 zvving 2017 年 1 月 13 日 首先你要知道 ORM 的缩写是什么; 其次你要知道怎么在开发语言( java , python )中写 SQL 操作数据库; 感觉起来不大方便是吧,选个 ORM 框架试试。 话说回来,如果真的不知道 ORM 缩写是什么就来提问……有些不负责任呀。 |
7 syasuker 2017 年 1 月 13 日 对象关系映射(英语: Object Relational Mapping ,简称 ORM ,或 O/RM ,或 O/R mapping ),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。 对于 Java 来说就是 Entity,将数据库中的字段对应到一个对象上 |
8 jswh 2017 年 1 月 13 日 |
9 gino86 2017 年 1 月 13 日 简单来说就是把一个对象中的属性值写入数据库对应列的中间件 |
10 wizardoz 2017 年 1 月 13 日 ORM 就是将数据库的数据抽象成 编程语言中的对象. 就好有个学生表 没有 ORM 的时候是 select age,sex,degree,.... from student where name = "李刚" 查询出的结果可能是个字符串,你要去你面解析你要的内容. 有了 ORM 以后可能是这样: obj_ligang = TStudent.objects.get(name="李刚") 然后就 print(obj_ligang.age, obj_ligang.sex, obj_ligang.degree) |
11 AlisaDestiny 2017 年 1 月 13 日 @jswh 这个站长真是有点意思。 |
12 ytmsdy 2017 年 1 月 13 日 通俗一点说,就是相当于你跑了一个内存数据库。 |
13 dexterzzz 2017 年 1 月 13 日 LINQ |
15 clino 2017 年 1 月 13 日 python 里的例子就是 sqlalchemy 使用的例子如 uliweb 里的 uliorm 默认用 sqlalchemy 作为 orm 引擎: http://limodou.github.io/uliweb-doc/zh_CN/db/orm.html |
16 darrenfang 2017 年 1 月 13 日 via iPhone @jswh 这个网站真好 |
17 lightening 2017 年 1 月 13 日 把 UPDATE Customers SET City='Hamburg' WHERE id=1; 改成这样写: customer = Customer.find_by(id: 1) customer.city = 'Hamburg' customer.save |
18 izoabr 2017 年 1 月 13 日 你不再需要自己去操作 SQL 了,而是在操作一个对象。 |
19 slysly759 2017 年 1 月 14 日 via Android 跟着廖雪峰教程用 Python 手写一个,这样会理解更深入一些。我在博客上提到过用 orm 的一优势:比如避免 SQL 语句满天飞, web SQL 注入到处跑等等。 |
20 andreby 2017 年 1 月 14 日 object relation mapping 啊 |
21 abcbuzhiming 2017 年 1 月 14 日 想把关系数据库的模型映射为对象模型,别说这招在很多场合是适用的,因为实际上我们在大多数时候不需要强关系模型,但是,复杂关系查询就完蛋了 |
22 anonymoustian OP @abcbuzhiming 请问什么叫做强关系模型呢? |
23 abcbuzhiming 2017 年 1 月 16 日 @anonymoustian 关系数据库最早的需求来源就是金融业,这个领域的数据的一致性和实时性要求非常高,各种约束,这就是关系数据库的早期场景,可以看做是强关系模型,但是后来到了互联网时代,没有这么严格的数据校验需求,或者说,互联网时代的数据没有这么严格的需求,倒是很多用关系数据库的互联网项目把外键都去掉,甚至数据一致性和唯一性放在程序做校验,数据库单纯作为数据仓库使用 |