gpt4 book ai didi

java - 通过 ODBC 连接使用 Hibernate

转载 作者:搜寻专家 更新时间:2023-10-30 23:20:27 25 4
gpt4 key购买 nike

我需要通过 ODBC 连接使用 Hibernate(不是我的决定)并且想知道这样做的注意事项(如果可能的话?)。我做了一些研究,有点困惑,希望有人能澄清一些要点。好像我需要使用 JDBC-ODBC 桥?

Wiki - JDBC/ODBC Bridge

  1. 此页面充满了不同的 JDBC“类型”(1-4)。据我了解,驱动程序的具体实现细节随着类型版本的增加而增加? IE。类型 1 ODBC 驱动程序不能支持类型 4 驱动程序可以支持的相同功能?好像 ODBC 驱动程序不能超过 1,而 JDBC 驱动程序(可以)达到 4?

  2. 如果目标数据库有自己的 ODBC 驱动程序,需要什么级别的支持才能工作?我是否应该查看文档以查看是否存在 1 级、N 级等调用?

  3. 与上述问题类似,如何确保 LOB 字段正常工作/中断? ODBC驱动中是否需要实现某个级别或某些SQL函数?

不幸的是,我在理解 hibernate 的要求方面有点脱节,因为我找不到关于它需要什么的文档。最好有解释和/或文档。

最佳答案

1)ODBC 不像 java 那样有“驱动程序类型”。主要区别(以及 Java 具有驱动程序类型的原因)是一些驱动程序需要 native 扩展,这些扩展不能跨不同的操作系统/架构移植。

例如,JDBC 驱动程序类型 1,具有纯 native 绑定(bind)。因此,如果您有使用此驱动程序在 Windows 上运行的应用程序,则无法将您的应用程序部署到 Linux,因为存在二进制不兼容问题。

JDBC Driver type 4 在天平的另一边,它完全用 java 编写,因此它可以在任何可以运行 JVM 的平台上运行,而不需要转换调用的服务(这是类型 3 驱动程序的情况)。

所以Type 1是纯native,Type 4是纯java,中间有深浅不一。

2) 您需要检查数据库供应商驱动程序。你能说出你使用的是哪个数据库吗?

3) LOB 字段“应该”工作,但这也取决于驱动程序,它可能有一些奇怪的限制,例如“驱动程序无法处理大于 4k 的 Lob 字段”。

我的专业建议是,由于以下原因,你要狠狠地揍做决定的人:

  • 摘自 oracle 站点:建议将 JDBC-ODBC Bridge 驱动程序用于原型(prototype)设计工作以及不存在其他基于 JDBC 技术的驱动程序的情况
  • 来自维基百科:与其他驱动程序类型相比,它很慢
  • 您会在其他数据库供应商网站上找到类似的评论,因为 JDBC 驱动程序在过去 12 年(或更长时间)中发生了很多的改进。
  • 您正在编写 java,而不是 VB.Net

请不要害怕向那个人表明他/她错了(当然是以一种很好的方式)。

关于java - 通过 ODBC 连接使用 Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7289121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com