请问hibernate java程序没有sql代码?

wow*_*wrt 5 java sql hibernate

我没有使用过hibernate.我在java方面有一点经验.我正在浏览由Oracle(零售价格管理)创建的Java应用程序的野兽的来源.我期待嵌入很多sql代码,因为应用程序大量使用数据库.但令我惊讶的是,没有嵌入式SQL代码!至今.我发现它使用了大量.hbm.xml文件中所谓的"Hibernate" .它是使用hibernate的java程序的商标还是我没有看到完整的代码库?有人可以告诉我这是怎么可能的吗?谢谢.

Pét*_*rök 2

与所有 ORM 工具一样,Hibernate 确实减少或消除了在 Java 代码中使用原始 SQL 的需要,原因如下:

  • 各种实体之间的许多关联都记录在 Hibernate 映射中,因此 Hibernate 会自动获取这些关联 - 即,如果 Java 端的两个类之间有聚合关系,则这可能会映射为 DB 中的外键关系,并且 Hibernate ,每当加载类 A 的实例时,也可以自动加载关联的类 B 的实例,
  • 许多查询可以使用 Hibernate 自己的 HQL 查询语言或使用其 Criteria API 来完成。

在底层,Hibernate 确实生成 SQL 来与数据库通信,但这在 Java 端是不可见的。如果启用的话,可以在日志中看到它。

因此,使用 Hibernate 的程序很少需要直接使用 JDBC 或 SQL。这些异常通常与 Hibernate 无法完全处理的“棘手”遗留数据库模式有关。