2

私の目的は、Java で読み書きできるローカル データベースを作成することです。Python を使用してローカルの sqlite データベースを操作したり、VB.Net を介して Microsoft Azure 上の既存のネットワーク データベースと対話したりした経験はありますが、データベースを作成するための Java の定式化は私を逃れています。

ほとんどのソース ( JDBC Docsなど) は、ネットワーク プロトコルまたは localhost でホストされているデータベースを介してデータベースにアクセスしていると想定しているようです。私の望ましい実装は、データベースを作成してファイル (またはファイルのコレクション) に保存し、ネットワーク接続なしでローカルに保存してアクセスできるようにすることです (「file:」プロトコルを介して推定)。

JDBC チュートリアルは、一度起動して実行すると非常に役立つように見えますが、既存のデータベースをまだ持っていないため、現在は私の範囲を超えています。

多くの ソースが、H2、MySQL、Derby、または Hypersonic DB などのソリューションを提案しています。ただし、いくつかの理由から、拡張機能をインストールするのは嫌いです (それが正しい用語である場合)。

  • このプロジェクトは当初、Java の使い方を学ぶのに役立つことを目的としています。プロジェクトの範囲を広げると、「ベース」言語での経験が希薄になり、おそらく、「カーゴ カルト プログラミング」に従事する誘惑が高まります。
  • このプロジェクトが他のユーザーに配布された場合 (確かに可能性は低いですが、それでも!)、Java のコア以上のものをインストールするよう強制したくありません。
  • Java に拡張機能 (アドオン? モジュール?) をインストールする方法がわかりません。

同様の理由で、Microsoft SQL Server のインストールは生産的ではありません。

この答えは、私が目指しているものに近いようです。ただし、エラーが発生します。

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/?user=root&password=rootpassword

「jdbc:file://targetFile.sql」を試すと、同様のエラーが発生します。

「組み込み」データベースという用語を見たことがありますが、これは「ローカル データベース」のサブセットだと思います (つまり、ローカル データベースは同じシステムに格納されます。組み込みデータベースは、単一のアプリケーションでのみ使用されるローカル データベースです)。 - これらの定義が間違っている場合は、お気軽に訂正してください!

4

4 に答える 4

6

ほとんどの場合、エラーが発生する理由は、接続の確立などに実際に使用する前に、ドライバーを登録していない(リフレクションを使用して...)という事実が原因です。

おそらくあなたはの線に沿って何かをしたいと思うでしょうClass.forName("driver")

次に、必要に応じてそれをキャストし、getConnection()メソッドを呼び出す前にDriverManagerに登録します。

問題の解決に役立つ可能性のある非常に便利なリンクを次に示します。

http://www.kfu.com/~nsayer/Java/dyn-jdbc.html

ただし、本当にローカルデータベース/ファイルを使用したい場合は、SQLiteを確認することをお勧めします。これは、設定がはるかに簡単なMySQLアプローチを使用することをお勧めしますが、それを実行する1つの方法かもしれません。そして、JDBCでどのように機能するかを学びます。

あなたがまだSQLiteを検討しているなら、これをチェックしてください:

JavaとSQLite

外部の.jarファイルをコードにインポートする際のガイダンスが必要だと思います(つまり、JDBCドライバーに使用するようなサードパーティのライブラリ)。IDE(Eclipse、Netbeansなど)を使用していますか、それともテキストエディタで記述して手動でコンパイルしていますか?

于 2012-12-03T22:24:34.377 に答える
0

DBC は、必ずしも「ネットワーク モード」のデータベースであるとは限らない、JDBC ドライバーを備えた任意のデータベースで使用できます。組み込みデータベースでも使用できます。

Java および埋め込み可能なデータベースの一部を次に示します。

http://www.h2database.com/html/main.html

http://db.apache.org/derby/

http://hsqldb.org/

于 2012-12-03T22:08:08.507 に答える
0

Java の JDK には、データベースの実装もそれにアクセスするためのドライバーも含まれていません。「データベース」に接続するための抽象化として JDBC のみを提供します。必要なすべてのライブラリをコードに含めるのはあなた次第です。

自己完結型のコードが必要な場合は、組み込み可能なデータベースの .jar ファイルをクラスパスに含めるだけです。そうすれば、コード内にデータベースのインスタンスを作成し、外部依存を最小限に抑えることができます。

ここに、Java 組み込み可能データベースのリストがあります。

HSQLDB をコードに埋め込む方法の例をここで見つけることができます。

于 2012-12-03T23:16:12.047 に答える