gpt4 book ai didi

java - 覆盖 jdbc 第三方 jar 中的方法

转载 作者:行者123 更新时间:2023-12-01 14:45:37 28 4
gpt4 key购买 nike

我想通过 ebean 访问我的数据库。我的数据库是Gupta SQLBase 11.5(别怀疑你不知道)。问题是古普塔的人都很懒。因此,他们的 java.sql.DatabaseMetaData.getDatabaseMajorVersion 实现会抛出 SqlException: 不支持的方法。是否可以在我的应用程序中覆盖该方法,使其只返回 11?我已经尝试使用此方法实现我自己的 jdbc.gupta.sqlbase.SqlbaseDatabaseMetaData 类,该方法确实有效,但我无法实现接口(interface)所需的所有方法。这就是为什么我通过 ebean 执行的所有选择都返回 null。所以我只需要覆盖 getDatabaseMajorVersion 方法。恕我直言,没有意见要实现一个仅扩展 gupta 类的子类,因为我的类永远不会被采用。

感谢您提供的每一条建议。最好的问候,马可

最佳答案

您可以使用 delegate pattern 来编写包装器,或通过Proxy (反射)。您将需要拦截对“覆盖”方法的任何调用,并将其他方法委托(delegate)给底层对象。

为了方便起见,您还可以为 Connection 编写一个包装器,并重写 Connection.getMetaData(),它应该返回包装器的实例。

如果你想更进一步,你也可以注册 Driver 的实现。重写连接 URL 并返回您的 Connection 实例。

关于java - 覆盖 jdbc 第三方 jar 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15462160/

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