0

ebean を介してデータベースにアクセスしたいと考えています。私のデータベースは Gupta SQLBase 11.5 です (知らなくても気にしないでください)。問題は、グプタの人たちがとても怠け者だということです。そのため、java.sql.DatabaseMetaData.getDatabaseMajorVersion の実装は SqlException: unsupported メソッドをスローします。アプリケーションでそのメソッドを上書きして、11 を返すようにすることはできますか? 実際に機能するこのメソッドを使用して、独自の jdbc.gupta.sqlbase.SqlbaseDatabaseMetaData クラスを実装しようとしましたが、インターフェイスが必要とするすべてのメソッドを実装することはできません。そのため、ebean を介して行うすべての選択で null が返されます。したがって、getDatabaseMajorVersion メソッドを上書きするだけで済みます。私見では、gupta クラスを拡張するだけのサブクラスを実装するという意見はありません。

あなたが与えることができるすべてのアドバイスに感謝します。よろしく、マルコ

4

1 に答える 1

1

デリゲートパターンを使用するか、Proxy(リフレクション)を使用して、ラッパーを作成できます。「オーバーライドされた」メソッドの呼び出しをインターセプトし、他のメソッドを基になるオブジェクトに委任する必要があります。

便宜上、のラッパーを記述し、ラッパーのインスタンスを返す必要があるConnectionオーバーライドを作成することもできます。Connection.getMetaData()

気になりたい場合Driverは、接続URLを書き換えて、のインスタンスを返す実装を登録することもできますConnection

于 2013-03-18T11:08:47.583 に答える