JDBC的优缺点与局限性
在Java开发学习过程中,当遇到需要对数据库进行操作的应用场景时,就不得不提到JDBC,JDBC 代表 Java Database Connectivity,它是提供了一组 Java API 来访问关系数据库的 Java 程序。那为什么有了JDBC,还需要HIbernate、mybatis等其他的数据库服务框架?这就需要了解JDBC的优缺点以及它的局限性。
我们都知道JDBC是使用原生SQL对数据库进行操作的,所有的基础增删改查操作都是使用语句来执行,那当我们遇到以下问题的时候该如何解决?
1、在开发好功能以后,发现由于业务变动需要对数据库的表字段进行增加修改。这时我需要对之前写好的语句进行修改,如果表字段很多,修改起来会很麻烦。
2、在实际业务开发过程中,我需要用到一个复杂的判断结果,但是这个结果不能直接在数据库中增加字段,如果增加字段每次都需要修改数据库并且从数据库中取值,影响性能。
3、Java中最重要的就是面向对象的思想,JDBC的语句操作与面向对象思想违背,如果使用JDBC进行查询操作,无非就是直接通过key来取值或者通过反射机制把查询出的结果对应到建立好的实体上。
什么是ORM
经过上面的问题,对象关系映射(ORM)应运而生。ORM 表示 Object-Relational Mapping (ORM),是一个方便在关系数据库和类似于 Java, C# 等面向对象的编程语言中转换数据的技术。HIbernate就是经典的ORM框架之一。一个 ORM 系统相比于普通的 JDBC 有以下的优点。
HIbernate的诞生
Hibernate 将 Java 类映射到数据库表中,从 Java 数据类型中映射到 SQL 数据类型中。Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象。
HIbernate的优势
- Hibernate 使用 XML 文件来处理映射 Java 类别到数据库表格中,并且不用编写任何代码。
- 为在数据库中直接储存和检索 Java 对象提供简单的 APIs。
- 如果在数据库中或任何其它表格中出现变化,那么仅需要改变 XML 文件属性。
- 抽象不熟悉的 SQL 类型,并为我们提供工作中所熟悉的 Java 对象。
- Hibernate 不需要应用程序服务器来操作。
- 操控你数据库中对象复杂的关联。
- 最小化与访问数据库的智能提取策略。
- 提供简单的数据询问。