实际上,您有两种选择:
您可以尝试从不同的类加载器加载驱动程序。如果您在应用程序中仅需要纯JDBC,那将起作用。我怀疑您将让Hibernate使用这样的设置。
最终,您将必须运行代码,在该代码中需要从两个类加载器中查看实例,在这里,您将得到ClassCastExceptions(具有相同全限定名的两个类从不同的类加载器中加载时是不同的)。
您可以将应用程序拆分为两个。第二个服务器是一台小型服务器,该服务器从原始应用程序获取命令,并将这些命令转换为数据库的JDBC。小型服务器与Oracle 8通讯,而您的应用仅与一个数据库通讯。
这种方法将允许您将两个问题完全分开,但是您将无法在两个数据库上运行联接。
您可以使用CREATE DATABASE LINK在新数据库中链接旧的Oracle 8数据库。这样可以使旧表可见,就好像它们是新数据库的一部分一样。您的应用仅与一个数据库对话,而Oracle在内部处理细节。
也许Oracle 8太旧了,无法使用,但是我绝对会尝试一下。
Oracle JDBC驱动程序可能会更加兼容。当您说“使用此JAR完全不可能”时,您尝试过吗?我过去使用Oracle 10驱动程序连接到Oracle 7。并非所有功能都受支持,但我可以运行标准查询和更新。