什么是JDBC?
JDBC代表 Java数据库连接.它提供了一组Java API,用于从Java程序访问关系数据库.这些Java API使Java程序能够执行SQL语句并与任何SQL兼容的数据库进行交互.
JDBC提供了一种灵活的体系结构来编写可以在不同平台上运行并与不同平台交互的数据库独立应用程序没有任何修改的DBMS.
JDBC的优点和缺点
JDBC的优点 | JDBC的缺点 |
---|---|
干净简单的SQL处理 大数据的良好表现 非常适合小型应用程序 简单的语法,易于学习 | 如果在大型项目中使用它会很复杂 大量编程开销 无封装 难以实现MVC概念 查询是特定于DBMS的 |
为什么使用对象关系映射(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));
第一个问题,如果我们需要在开发几页或我们的应用程序后修改数据库的设计怎么办?其次,在关系数据库中加载和存储对象会使我们面临以下五个不匹配问题 :
Sr.No. | Mismatch&描述 |
---|---|
1 | 粒度 有时你会有一个对象模型,它的类比数据库中相应表的数量多. |
2 | 继承 RDBMS没有定义任何类似于继承的东西,这是面向对象编程语言中的一种自然范例. |
3 | 身份 RDBMS恰好定义了一个"同一性"的概念:主键.但是,Java定义了对象标识(a == b)和对象相等(a.equals(b)). |
4 | 协会 面向对象语言表示使用对象引用的关联,而RDBMS表示关联作为外键列. |
5 | 导航 您在Java和RDBMS中访问对象的方式根本不同. |
O bject- R elational M 应用(ORM)是处理所有上述阻抗不匹配的解决方案.
什么是ORM?
ORM代表 O bject- R elational M apping (ORM)是一种用于在关系数据库和面向对象的编程语言(如Java,C#等)之间转换数据的编程技术.
ORM系统具有以下优点o ver plain JDBC :
Sr.No. | 优点 |
---|---|
1 | 让我们的业务代码访问对象而不是数据库表. |
2 | 隐藏来自OO逻辑的SQL查询的详细信息. |
3 | 基于"引擎盖下的JDBC". |
4 | 无需处理数据库实现. |
5 | 基于业务概念而非数据库结构的实体. |
6 | 事务管理和自动密钥生成. |
7 | 快速开发申请. |
ORM解决方案以下四个实体的sist :
Sr .No. | 解决方案 |
---|---|
1 | 对持久类对象执行基本CRUD操作的API. |
2 | 用于指定引用类的类和属性的查询的语言或API. |
3 | 用于指定映射元数据的可配置工具. |
4 | 与事务对象交互以执行脏检查,延迟关联提取,和其他优化函数. |
Java ORM框架
有几个持久性Java中的框架和ORM选项.持久框架是一种ORM服务,它将对象存储和检索到关系数据库中.
Enterprise JavaBeans Entity Beans
Java数据对象
Castor
TopLink
Spring DAO
Hibernate
还有更多