1、ORM(Object Relational Mapping)框架采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。简单理解为一种框架的格式
只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。
当前ORM框架主要有五种:Hibernate(Nhibernate),iBATIS,mybatis,EclipseLink,JFinal。
2、ORM框架做的最多的便是“缓存”。
3、优点:
ORM框架降低了学习门槛,一个对sql语句并不熟悉的开发人员也可以很容易通过简易的ORM框架Api进行数据库的操作。
提高了开发效率,ORM使我们减少很多繁琐重复的工作量,让我们的注意力集中在实现业务上。
一定程度上提高了程序的响应速度。
4、缺点:
ORM框架的弊端也很明显,框架会自动生成Sql语句,所有场景的sql语句都是同一套模板,难以自动针对场景对sql语句进行良好的优化,某种场景下很容易生成执行很慢的sql语句。如果让DBA看到这样的执行sql,必定引来抓狂崩溃。
ORM框架只是为了满足绝大多数的场景而生的,特殊需要优化sql的场景下,我们完全可以直接使用驱动手动执行sql或使用ORM框架内提供的sql语句api进行自定义sql语句。
5、市面常见的ORM框架:
.Net体系: EntityFramework,功能强大,lambda api,有些庞大臃肿,很多功能用不上 Dapper,轻量级,数据库种类支持丰富,sql写法灵活,运行速度快 CYQ.Data,自动化,日志,分布式缓存,弱类型,api简介 Java体系: MyBatis,映射采用Xml配置sql,多种映射关系灵活配置,sql需要手动编写到配置,轻量级,半自动 Hibernate,Xml配置sql,支持HQL语句,移植性好,日志,重量级,功能全,全自动 Speedment,lambda api,依赖java8
6、SQLAlchemy
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。
更多关于SQLAlchemy查询https://www.cnblogs.com/linhaifeng/articles/7560153.html