最近了解到了,面向对象编程与ORM框架之间的关联,虽然以前做项目时,做过相关的代码,但是没去深入理解,现在就完成一个总结分析,加深记忆。
1.什么是ORM?
对象关系映射(Object Relational Mapping
,简称 ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。
ORM框架:为了解决面型对象与关系数据库存在的互不匹配的现象的框架。
当前ORM框架主要有五种:
- (1)Hibernate 全自动写sql语句
- (2)iBATIS 半自动 自己写sql语句,可操作性强,小巧
- (3)mybatis
- (4)eclipseLink
- (5)JFinal
2.为什么使用ORM?
当我们实现一个应用程序时(不使用ORM),我们可能会写特别多数据访问层的代码,从数据库保存、删除、读取对象信息,而这些代码都是重复的。而使用ORM则会大大减少重复性代码。对象关系映射(Object Relational Mapping,简称 ORM),主要实现程序对象到关系数据库数据的映射。
3.对象-关系映射的优点:
- 简单:ORM以最基本的形式建模数据。比如ORM会将MySQL的一张表映射成一个类(模型),表的字段就是这个类的成员变量;
- 精确:ORM使所有的MySQL数据表都按照统一的标准精确地映射成面向对象编程的类方法,使系统在代码层面保持准确统一;
- 易懂:ORM使数据库结构文档化。比如MySQL数据库就被ORM转换为了程序员可以读懂的面向对象编程的类,程序员可以只把注意力放在他擅长的面向对象编程语言代码的类层面(如果能够熟练掌握MySQL就更好了);
- 易用:ORM包含对持久类对象进行CRUD操作的API,例如create(), update(), save(), load(), find(), find_all(),where()等,也就是讲sql查询全部封装成了编程语言中的函数,通过函数的链式组合生成最终的SQL语句。通过这种封装避免了不规范、冗余、风格不统一的SQL语句,可以避免很多人为Bug,方便编码风格的统一和后期维护。
总结:
ORM框架,就是通过将SQL
语句的增删查改等DML
(Data Manipulation Language 数据操纵语言),用类封装起来,变成一个个的类接口方法,如create(), update(), save(), load(), find(), find_all(),where()
.
首先需要我们去调用面向对象编程语言内嵌的模板类的模板方法models.model.xxx
, 构建好具体的数据库表模型,然后由ORM框架去将这些方法,映射转变为相应的 SQL
语句,然后再将这些 SQL
语句提交给数据库,从而间接完成与数据库的交流。
总之,使用ORM框架,就是用模型,也就是在某文件1内的DML建表操作,然后在另外的文件2内,写入其他的DML操作,如增删查改等等。