0

データベースに接続するJavaアプリを開発している間、2つのオプションがあるようです。

  • 標準java.sqlクラスを使用する
  • ベンダー固有のクラスを使用します(私たちが持っているように、com.mysql.jdbc.Connectionそして私たちも持っていますjava.sql.Connection)。

どちらを使用することをお勧めしますか?私が現在mysqlを使用しているとしましょう。しかし、将来的にはオラクルに切り替えるかもしれません。ベンダー固有の実装を使用することでパフォーマンス上のボーナスはありますか?

4

2 に答える 2

2

ベンダー固有のコードを使用することは絶対に避けてください。常に標準のapi(JDBC)を使用してください。後で、保守が容易になり、データベース間で簡単に移植できるようになります。ベンダー固有のコードのパフォーマンス上の利点はごくわずかです。最適化されたクエリ、インデックス、キャッシュなどを使用すると、より適切に実行できます。

于 2013-01-04T08:40:36.777 に答える
2

ほとんどの場合、パフォーマンスの違いに気付くことはありません。

java.sqlパッケージは、異なるデータベース間で最も一般的な分母を表しますが、ベンダー固有のパッケージは、データベースバックエンド専用のいくつかの機能も公開します。ただし、後でデータベースバックエンドを切り替えるためにオプションを開いたままにしておきたい場合は、とにかくこれらを回避する必要があります。これは、新しいデータベースに同等の機能がない可能性があり、まったく異なる方法で問題を解決する必要があるためです。最後に、アプリケーション全体の大規模なリファクタリングが必要になります。

tl; dr: Oracleまたはその他のSQLデータベースに切り替えるためのオプションを開いたままにしておきたい場合は、java.sqlを使用します。

またはさらに良い方法: Hibernateのようなオブジェクトリレーショナルマッピングフレームワークを使用して、データベースの抽象化を行います。慣れるまでしばらく時間がかかりますが、その後、はるかに少ない工数でデータベース機能を実装できるようになり、データベースバックエンドの切り替えは構成ファイルの1行の変更になります。

于 2013-01-04T08:40:39.250 に答える