Java プロジェクトに Microsoft Access データベースを使用することを検討しています。私の質問は、Microsoft Access データベースを使用し、プロジェクトを完成させ、任意のコンピューター/オペレーティング システムで jar ファイルとして実行する場合、特にデータベースが必要な場合、コンピューター/オペレーティング システムに Microsoft Access をインストールする必要があるかどうかです。 JavaプログラムのGUIに配置され、プログラムの管理者はエントリを追加および削除できます。
2 に答える
データベースにアクセスするすべてのマシンにアクセス odbc ドライバーをインストールする必要があります。すべての Access をインストールせずに、Access ランタイムのものをインストールすることで、これを行うことができると思います。この種のデータアクセスはファイルレベルであるため、パフォーマンスが非常に低下することに注意してください。実際のデータベース (postgres、mysql、sql サーバー、oracle) またはSQL Server Expressなどの軽量データベースを使用し、odbc-jdbc ブリッジまたはできればネイティブ jdbc ドライバーを使用してそのデータベースにアクセスすることをお勧めします。ネイティブ jdbc ドライバーを使用すると、Windows 以外の環境からアプリを実行できます。
Microsoft Access をインストールしなくても、すべての Microsoft Windows システムでJDBC-ODBC ブリッジ経由で Access データベースを使用できます。以前はJet データベース エンジンとして知られていた Access データベース エンジン (ACE) のみが必要です。ACE は、現在の Windows バージョンの一部です。古いものについては、 Microsoft Data Access Components (MDAC)をインストールする必要がある場合があります。
Java から Access データベースを使用する場合、いくつかの欠点があります。
- これは、ネイティブ コードを使用するタイプ 1 ドライバーです。一般に、純粋な Java JDBC ドライバーの方がパフォーマンスが高くなります。
- JDK 6 では、JDBC-OLE ブリッジがいくらか強化されました。しかし、文字セットと CLOB にはまだいくつかの問題があります。
- アプリケーションは、Microsoft Windows オペレーティング システムに制限されています。
- JDK 7 JDBC-ODBC ブリッジ ガイドによると、JDBC-ODBC ブリッジは JDK 8 で削除されます。
JDBC-ODBC ブリッジは、暫定的なソリューションと見なす必要があります。JDK 8 では削除される予定です。さらに、Oracle は JDBC-ODBC ブリッジをサポートしていません。JDBC-ODBCブリッジのかわりに、データベースのベンダーが提供するJDBCドライバを使用することをお薦めします。
そのため、プロジェクトで別のデータベースを使用する可能性がある場合は、Microsoft Access を Java と一緒に使用することは避けてください。
はるかに優れた JDBC ドライバーを備えた多くの代替手段があります。
小さなフットプリントの組み込みデータベースが必要な場合は、次のものがあります。
- Apache Derbyとも呼ばれるJava DB (JDK の一部)
- H2
- HSQLDB
- Xerial ドライバを使用したSQLiteなど
(Java DB、H2、および HSQLDB は純粋な Java ソリューションです)
クライアント サーバー ソリューションを好む場合、ほとんどの商用およびオープン ソースには本格的な JDBC ドライバーが存在します。
- オラクル
- Microsoft SQL Server (サーバーは Windows 上で実行する必要がありますが、Java クライアントは JVM をサポートするすべての OS 上で実行できます。Microsoft JDBC Driver for SQL Server Support Matrix を参照してください)
- PostgreSQL
- MySQL