6.4 应用程序与数据库的交互 ★★☆☆☆
常见应用程序与数据库的数据交互方式:库函数、嵌入式SQL、通用数据接口标准和对象关系映射 (Object Relational Mapping,ORM) 等。
6.4.1 库函数级别访问接口
库函数级别的数据访问接口是数据库提供的最底层的数据接口,如 Oracle 数据库的Oracle Call Interface(OCI)。
OCI 是由一组应用程序开发接口 (API) 组成的, Oracle 提供 API 的方式是提供一组库。
OCI开发方法实际上是将结构化查询语言 (SQL) 和高级程序语言相结合的一种方法。
OCI开发方法的缺点是强依赖于特定的数据库,需要对该数据库机制有较深的理解,学习难度较大,开发效率不是很高。
6.4.2 嵌入SQL访问接口
嵌入式SQL(Embedded SQL) 是一种将 SQL语句直接写入某些高级程序语言,高级语言称为宿主语言。
嵌入式SQL 中除了可以执行标准SQL程序,还增加了一些额外的语法成分。主要包括宿主变量使用声明、数据库访问、事务控制、游标操作的语法等。
6.4.3 通用数据接口标准 ★★☆☆☆
开放数据库连接 (Open DataBase Connectivity,ODBC) 是为解决异构数据库间的数据共享,ODBC为异构数据库访问提供统一接口,允许应用程序以SQL为数据存取标准,存取不同DBMS 管理的数据;使应用程序直接操纵数据库中的数据,避免随数据库的改变而改变, 也可以访问如 Excel表和ASCII数据文件等非数据库对象。
数据库接口:
● 数据库访问对象 (Database Access Object,DAO)位于业务逻辑层与数据资源层之间,主要适用于单系统应用程序或在小范围本地分布使用
● 远程数据库对象(Remote Database Object,RDO)
●ActiveX数据对象(ActiveXDataObjects,ADO)用于访问关系或非关系数据库中的数据。
ADO.NET 提供了对关系数据、 X M L和应用程序的访问,允许和不同类型的数据源以及数据库进行交互。
Java 数据库连接 (Java Database Connectivity,JDBC) 是一种用 于执行 SQL语句的Java API, 可以为多种关系数据库提供统一访问,它由一组用Java语言编写 的类和接口组成。
6.4.4 ORM 访问接口 ★★☆☆☆
对象关系映射 (Object Relational Mapping, ORM) 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统数据之间的转换。
ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象与关系数据库相互映射;ORM 可以解决数据库与程序间的异构性。
典型的ORM框架有Hibernate、Mybatis 和 JPA 等。
(1)Hibernate: 全自动的框架,强大、复杂、笨重、学习成本较高。
(2)Mybatis: 半自动的框架。
(3)JPA(Java Persistence API):JPA通过JDK 5.0注解或 XML描述对象-关系表的映射关系,是Java自带的框架。