ORM:对象关系映射(Object Relational Mapping),简单理解的话就是把我们定义的对象(类)映射到对应的数据库表上。所以也可以说ORM就是代码(软件)层面对于数据库表和关系的一种抽象。Django的Model就是ORM的一个具体实现。
同时ORM实现数据模型与数据库解偶,即数据模型的设计不需要依赖于特定的数据库。
那么什么情况用到ORM,或者说ORM到底有什么好处。可以从以下几个方面看:
1,由于数据库的总类很多,每种数据库拥有自己的操作语言,在项目运行期间,如果做数据库迁移,针对数据库去更改代码很麻烦,并且新的数据库学习的成本也需要考虑,那么这个时候ORM 就提供一个公共的SQL语句的模板,然后在具体实体对象操作的时候将实体对象的属性名称和属性值当作参数拼接进去,组装成完整的sql语句或者依旧采用封装一套浅显易懂的Api,Api内部通过对应方法和实体对象的组装成sql语句。
2,通过泛型和反射,我们可以获取到任何实体类的属性而不是具体到某一种类型,通过遍历实体类的属性去数据集合中一一获取并复制返回。这一操作便将数据集合的数据完美包装成了以面向对象为核心的和类相关的对象数据集合。
3,ORM提供了缓存,ORM框架的缓存系统一般是较为复杂的,而且每种ORM框架对缓存的实现机制都是不同的。整体的思路却是一致的,对访问频率较高的数据进行缓存,并在对数据编辑的时候要对缓存进行更新,以免出现数据不一致的问题。
网友评论