68

和就 Hibernate 而言有JTA什么区别?JPAPlain JDBC

4

3 回答 3

87

为了存在差异,应该有一些共同点,除了与数据库相关(尽管 JTA 不仅如此)之外,它们没有更多共同点:

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

  • plain JDBC 是一种访问数据库的技术。它是 Hibernate 实际用于执行数据库操作的“幕后”。它使用 JDBC 向数据库发送查询。

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

于 2010-10-11T06:56:10.920 回答
35
  • JDBC是用于数据库连接的 Java 标准。
  • JPA将 Java 开发人员与 JDBC 和数据库操作的内部工作隔离开来。Hibernate、EclipseLink、OpenJPA 和 Data Nucleus 是著名的 JPA 实现。
  • JTA是事务的标准,允许管理多个数据库之间的多个事务。

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

于 2014-04-05T17:50:29.397 回答
8

JPA(Java Persistence API)是用于在关系数据库中存储、访问和管理 Java 对象的 Java ORM 标准/规范。Hibernate 是 Java Persistence API (JPA) 规范的实现。

JTA(Java Transaction API)是分布式事务的 Java 标准/规范。当您的事务跨越多个连接/数据库/资源​​时,它就会出现。Atomikos 是 JTA 的一个实现。(像 IBM Websphere 这样的应用服务器有自己的 JTA 实现。)

于 2019-12-12T12:26:08.203 回答