JPA和JDBC有什么区别?


回答 1:

JDBC是用于直接连接到数据库并对其运行SQL的标准工具,例如,从TableName中选择*等。可以返回用户可以在其应用程序中处理的数据集,并且他可以执行所有常规操作,例如更新,删除,插入过程等。它是大多数Java DBA(包括JPA提供程序)背后的基础技术之一。

传统JDBC应用程序的一个主要问题是,用户经常会有一些some脚的代码,其中逻辑与SQL混合在一起,数据集和对象之间发生大量映射,等等。

JPA是对象关系映射的官方工具。 JPA是一项允许用户在代码表和数据库表中的对象之间进行映射的技术。 JPA可以从开发人员“隐藏” SQL,以便它们在Java类中处理所有事务,并且提供程序允许您保存它们并远程加载它们。 通常,可以使用XML映射文件或setter和getter上的注释来告知JPA提供程序。 用户对象上的哪些字段映射到数据库中的哪些字段。 hibernate是最受欢迎的JPA提供程序。

其他一些示例,包括OpenJPA,toplink等。

Hibernate和其他流行的JPA提供程序编写SQL,并使用JDBC在数据库中读写数据。

谢谢。

如果您喜欢我的答案,请投票。


回答 2:

如果您是初学者,要了解两者的区别将有些复杂。 我认为您应该首先了解JDBC和Hibernate之间的区别。 我希望您知道JDBC是什么,但仍作一个简短的描述:JDBC代表Java Database Connectivity。 JDBC是用于连接数据库并执行查询的Java API。 它提供了与数据库连接的驱动程序。 您可以使用JDBC API访问存储在任何关系数据库中的表格数据。 借助JDBC API,我们可以保存,更新,删除和从数据库中获取数据。

现在什么是休眠? 这是一个与JDBC不同的框架,您必须在使用Hibernate库之前先导入它,而JDBC是J2SE本身的一部分。 Hibernate所做的事情与开发JDBC的目的相同,但是您可以说Hibernate是JDBC的高级版本。 Hibernate简化了与数据库交互的Java应用程序的开发。它是一个ORM工具,意味着它将Java对象与db表进行映射。 一个Java类可以表示db中的表。 例如,如果您在Hibernate中将“ emp_26”表映射为Employee类,那么您将编写一个简单的面向对象的查询以从empl_26表中获取所有雇员:“ from Employee” //在Hibernate中“ select * from emp_26” // in JDBC。

Hibernate提供了很多功能,例如缓存,关联映射,继承映射,HQL,分页等等,这些功能在JDBC中是不可用的。

来到JPA,这是一个规范,它是一组类和接口。 JPA需要一个工具来实现它,并且该工具可以是Hibernate。 通过实现JPA,您可以执行与Hibernate相同的操作,但是格式为JPA。如果JPA是舞蹈,则需要Hibernate或其他工具才能为其提供舞蹈舞台。 顺便说一句,这并不意味着Hibernate无法在没有JPA的情况下跳舞,Hibernate也有自己的舞蹈。


回答 3:

JDBC是直接连接到数据库并对其运行SQL的标准-例如SELECT * FROM USERS等。可以返回可以在应用程序中处理的数据集,并且您可以执行所有常见的操作,例如INSERT,DELETE,运行存储过程等。它是大多数Java数据库访问(包括JPA提供程序)背后的基础技术之一。

传统JDBC应用程序的问题之一是,您经常会有一些糟糕的代码,在这些代码中数据集和对象之间会发生大量映射,逻辑与SQL混合在一起,等等。

JPA是对象关系映射的标准。 这是一项允许您在代码表和数据库表中的对象之间进行映射的技术。 这可以从开发人员“隐藏” SQL,以便它们处理的只是Java类,并且提供程序允许您保存它们并神奇地加载它们。 通常,可以将XML映射文件或getter和setter上的注释用于告诉JPA提供程序对象上的哪些字段映射到DB中的哪些字段。 最著名的JPA提供者是Hibernate,因此这是开始具体示例的好地方。

其他示例包括OpenJPA,toplink等。