20小时学会编程 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

进入DataMapper

为了回答这些问题,我决定搜索Stack Overflow。现在的共识就是使用一个叫作DataMapper的程序库让这类开发变得更加容易。

DataMapper是一种叫作“对象关系映射”的程序,通常缩写为ORMORMs能够为程序员解决一个迫在眉睫的问题:数据库经常使用它们自己的语言,这和程序员用来创建应用的语言有所不同。最常见的数据库语言叫SQL,但同时也有数百种其他语言。

假设我们是Amazon.com的一名程序员,我们想展示哈利波特系列的作者J.K.罗琳的书籍清单。这个SQL命令可能如下:

SELECT * FROM Book WHERE author = “J.K.Rowling” ORDER BY title;

这个命令会检索书籍数据库当中含有J.K.罗琳的所有记录,然后按标题字母顺序将它们列出。

不幸的是,让SQL或任何其他数据库查询语言与像Ruby这样的语言很好的契合是非常不容易的。使用一种语言进行编程已经很困难了,更别提同时使用几种语言了。

这就是ORMs产生的原因:它们允许程序员使用一种语言编程,然后用ORM将它们转换为数据库的语言。这就简单多了。

DataMapper是一种程序库,它让与使用Ruby的数据库的沟通变得更加容易。在默认情况下,DataMapper提供了许多有用的功能用于创建、读取、更新和删除数据库记录。因为DataMapper的面世已经有一段时间,而且经过了全面测试,所以在大多数情况下,它比你自己编写的数据库代码更加可靠。

DataMapper以一种程序的样式存在,它是这样安装的:

$ gem install data_mapper

虽然DataMapper是一个如此巨大的程序库,但是它也可以一块一块地进行安装。那就是一种叫作“模块化”的概念,而且它是好的编程的标志。以下就是安装所有个体程序库的命令:

$ gem install dm-core dm-aggregates dm-constraints dm-migrationsdm-transactions dm-serializer dm-timestamps dm-validationsdm-types

不用安装整个程序库,你只需要安装你的程序将会用到的部分,这样就更加高效了。

注意:环境中这些都已安装,直接使用即可。