ORM是什么?ORM介绍

下一篇  


JDBC是什么?

JDBC代表Java数据库连接,并提供一组Java API,用于Java程序访问关系数据库。这些Java的API允许Java程序执行SQL语句,并与任何SQL兼容的数据库进行交互。

JDBC提供了一个灵活的架构来编写一个独立于数据库应用程序,它可以在不同的平台上运行,并与不同的数据库管理系统交互,而无需任何修改。

JDBC的优点和缺点

JDBC的优点 JDBC的缺点
  • 干净和简单的SQL处理

  • 良好的性能与大数据

  • 用于小型应用很不错

  • 简单,语法很容易学习

  • 复杂,如果它被用在大型工程项目

  • 大的编程开销

  • 无封装

  • 难以实现MVC的概念

  • 查询是具体的数据库管理系统

为什么用对象关系映射(ORM)?

当我们与一个面向对象的系统工作,还有的对象模型和关系数据库之间的不匹配。 RDBMS代表以表格格式数据,而面向对象的语言,如Java或C#将其表示为对象的互连图。考虑下面的Java类与适当的构造函数和相关的公共功能:

 public class Employee {    private int id;    private String first_name;     private String last_name;       private int salary;       public Employee() {}    public Employee(String fname, String lname, int salary) {       this.first_name = fname;       this.last_name = lname;       this.salary = salary;    }    public int getId() {       return id;    }    public String getFirstName() {       return first_name;    }    public String getLastName() {       return last_name;    }    public int getSalary() {       return salary;    } }

考虑上述目的需要存储和检索到下面的RDBMS表:

 create table EMPLOYEE (    id INT NOT NULL auto_increment,    first_name VARCHAR(20) default NULL,    last_name  VARCHAR(20) default NULL,    salary     INT  default NULL,    PRIMARY KEY (id) );

第一个问题,如果我们需要开发有几页或我们的应用程序后,修改数据库的设计?其次,加载并存储对象在关系数据库使我们面临以下五大不匹配的问题。

不匹配 描述
Granularity 有时候,将有哪些具有比在数据库中对应的表的数目更多的类的对象模型。
Inheritance RDBMS中没有定义任何类似继承是面向对象编程语言的自然范式。
Identity 关系数据库定义的'千篇一律'只有一个概念:主键。但是,Java定义了对象标识(a== b)和对象相等(那么a.Equals(b))
Associations 面向对象的语言表示使用的对象引用,其中的上午RDBMS代表一个协会作为一个外键列关联。
Navigation 访问Java和关系数据库对象的方法是根本不同。

对象 – 关系映射(ORM)是解决处理所有上述阻抗失配。

什么是ORM?

ORM代表对象 – 关系映射(ORM)是一种编程技术的ORM系统已通过纯JDBC的优点如下关系数据库和面向对象的编程语言,如Java,C#等之间转换数据

S.N. 优点
1 让业务代码访问对象,而不是数据库表。
2 隐藏了面向对象的逻辑SQL查询详情。
3 基于JDBC的“引擎盖下”
4 无需处理数据库实现。
5 基于业务概念,而不是数据库结构的实体。
6 事务管理和自动密钥生成。
7 应用程序的快速开发。

ORM解决方案由以下四种实体:

S.N. 解决
1 一个API来对持久化类的对象执行基本的CRUD操作。
2 语言或API来指定引用的类和类的属性查询。
3 一个可配置的设备,用于指定映射元数据。
4 技术与事务对象交互,以执行脏数据检查,懒关联加载,以及其他优化功能。

Java ORM框架:

有几种持久性框架和Java的ORM方案。持久性框架是一个ORM的服务,存储和检索对象到关系型数据库。

  • 企业JavaBeans实体Bean

  • Java Data Objects

  • Castor

  • TopLink

  • Spring DAO

  • Hibernate

  • And many more

下一篇  
PS:如果您想和业内技术大牛交流的话,请加qq群(521571209)或者关注微信公众 号(AskHarries),谢谢!

转载请注明原文出处:Harries Blog™ » ORM是什么?ORM介绍

赞 (0)

分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址