0

Windows、Linuxディストリビューション、Mac OSなど、任意のOSにインストールされたmysql、oracle sql、sqlサーバーなどの3〜4個のDBMSでサンプルデータベースを作成するJavaコードを作成したいと考えています。

コードを作成するにはどうすればよいですか:

  1. 自動的に (またはユーザーの助けを借りて)、コンピューター内の jdbc ドライバーを見つけます。
  2. 使用する DBMS に関係なく動作する固定の一連の SQL コマンドを実行します。

これらすべてを行う方法を提案してください。

編集: これはバックエンドのアプリになります。私はJDBCに少し慣れていないので、最初に単純な/基本的なソリューションを探しています. 後で高度なものに切り替えます。

ありがとう。

4

3 に答える 3

3
  1. サポートされているすべてのデータベースのドライバーをプログラムにバンドルします。ユーザーが JDBC ドライバーや接続文字列を扱う必要はありません。(後者を編集するための UI を提供します。これはデータベース間で異なる場合があります。)
  2. ORM ( Hibernateなど) を使用します。または、データベースにデータを入力する必要がない場合は、データベース移行ライブラリ ( Flywayなど)
于 2012-08-01T21:49:31.197 に答える
2

1, こちらをご覧ください...任意の場所からJDBCドライバを利用する方法

2、異なる DBMS は類似した構文を使用しますが、同一ではありません。少なくとも 3 つのオプションがあります。

  • 関心のあるすべての DBMS でサポートされている sql コマンドのみを使用してください。

  • DBMS をスニッフィングし、それに応じて SQL ステートメントを変更します。

  • SQL 抽象化レイヤー (Java Persistence API の JPQL など) に付属するフレームワークを使用します。これは、あなたが求めているものには多すぎるのではないかと思います。

于 2012-08-01T22:02:35.887 に答える
0

ユーザーが JDBC ドライバーを見つけられるようにするには、ClassLoader を処理してカスタム ClassLoader を実装する必要がありますが、これは簡単なことではありません。または、これを処理するアプリケーションサーバーを使用する必要があります。

それ以外の場合は、すべての JDBC ドライバーをクラスパスで使用できるようにする必要があります。

ところで、JDBC は、SQL で動作するほとんどの RDBMS で動作するためのアダプターです。各データベース プロバイダーは、SQL に対してベンダー固有のカスタマイズを行いました。たとえば、Oracle にはシーケンスがあり、MySQL には自動採番があります。またはlimit、Oracle では使用できない MySQL クエリで使用できます。この問題の解決策は、Hibernate と同じことを行うことです (データベース ベンダー固有のものを処理するためのダイアレクトを用意します)。

于 2012-08-01T22:08:07.063 に答える