1

呼び出し API を使用して既存の C アプリケーションに JRE を埋め込んでいます。JDBC を使用して、そのコードでデータベースを操作できるようにしたいと考えています。このアプリケーションはトランザクション処理アプリケーションであり、データベース トランザクションはアプリケーションの C 部分のコードによって管理され、Java コードはそのトランザクション内で実行する必要があります。これは、新しい接続を開くことができないことを意味し ます。既存の接続を再利用する必要があります。

では、JRE をセットアップするときに既存の ODBC 接続ハンドルへの JDBC アクセスを提供する方法はありますか? JDBC-ODBC ブリッジの一部かもしれませんが、その名前の既存のドライバーとは異なり、既存の接続とトランザクションを使用するようにセットアップできるものです。

私の他のオプションは、私が見ているように、次のとおりです。

  • アプリケーションで可能なすべての C 操作に同等の Java を提供します (これは非常に多くの理由で望ましくありません。非常に多くのメソッドがあり、それらを複製するのは面倒です。

  • ODBC 接続を JNI でラップする独自の JDBC ドライバーを作成します。確かに、それは楽しい週末 (月) のプロジェクトになるでしょうが、それよりも早く何かを成し遂げる必要があると私は予想しています。

助けてください、Stack-Overflow、あなただけが私の希望です!

4

2 に答える 2

1

これが機能するかどうかはわかりませんが... Sun の JDBC-ODBC ブリッジの逆コンパイルされたソース コードをざっと見てみました。JdbcOdbcConnection をサブクラス化して、既知の接続ハンドルと既に開いている状態で初期化できるようです。これは、Java 側の接続ハンドルが実際の ODBC 接続ハンドルまたは接続オブジェクトへのポインターであり、JDBC-ODBC ブリッジで使用される ODBC ライブラリとコードが接続ハンドルを共有できるという意味で互換性があることを前提としています。

ただし、Sun のライセンスで開発者がそのようなトリックを実行できるかどうかを確認する必要があります。

于 2008-10-07T21:22:06.413 に答える
0

Sun は、JDK でJDBC-ODBC ブリッジを提供しています。

EDIT:あなたがすでにそれについて知っていて、それを使いたくないように聞こえるように読み直してください。

于 2008-10-07T20:31:03.053 に答える