2010-10-11 75 views

回答

69

为了使存在差异,应该有一个共同点,并且除了是与数据库相关的(尽管JTA不仅是),他们没有什么更多的共同点:

  • JPA是Java对象关系映射的标准 - 它指定了一组注释和一个接口 - 用映射对象执行持久性操作。 Hibernate实现JPA标准

  • 纯JDBC是一种访问数据库的技术。这正是Hibernate实际用来执行数据库操作的原因。它使用JDBC将查询发送到数据库。

  • JTA是事务API,它在Hibernate中是可选的。它处理(逻辑上)交易行为。

+2

那么JTA是什么负责回滚和提交使用实体管理器时?那么JPA使用JTA?或者当你说2个数据库副本时使用JTA?请回答我很困惑 – Ced 2016-06-03 01:28:05

+0

'为了存在差异,应该有一些共同点 - 这是一个想法还是一个事实? – 2017-11-25 21:48:13

21

JDBC是数据库连接的Java标准。

JPA将Java开发人员从JDBC和数据库操作的内部工作中分离出来。 Hibernate,EclipseLink,OpenJPA和Data Nucleus是着名的JPA实现。

JTA是一种交易标准,允许管理多个数据库之间的多个事务。

JPA将JDBC用于数据库连接和SQL相关操作,并且 - 可选地利用JTA将分布式事务管理细节委托给它。