English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JDBC データベース接続

対応するドライバーがインストールされた後、JDBCを使用してデータベース接続を構築できます。

JDBC接続を構築するためのプログラミングは非常にシンプルです。これらのシンプルな4つのステップです-

  • JDBCパッケージのインポート:Javaプログラムに以下の文を追加します importJavaコードで必要なクラスをインポートするために使用されます。

  • JDBCドライバーの登録: このステップにより、JVMが必要なドライバーの実装をメモリにロードし、JDBCリクエストを満たすことができます。

  • データベース URL 設定: これは、正しい形式のアドレスを作成し、接続したいデータベースに指し示すためです。

  • 接続オブジェクトの作成:最後に、以下のように記述しますDriverManagerオブジェクトのgetConnection()メソッドの呼び出しコードは、実際のデータベース接続を確立するために使用されます。

JDBCパッケージのインポート

Import文は、コード中で参照されるクラスがどこに見つかるかをJavaコンパイラに教えます。これは、ソースコードの先頭に配置されます。

標準JDBCパッケージ(データベーステーブルのデータを選択、挿入、更新、削除を許可する)を使用するには、以下のインポートをソースコードに追加してください

import java.sql.* ;  // 標準JDBCプログラム用
import java.math.* ; // BigDecimalおよびBigIntegerのサポートを取得

JDBCドライバーの登録

ドライバーを使用する前に、プログラムにドライバーを登録する必要があります。ドライバーを登録することは、Oracleドライバーのクラスファイルをメモリに読み込むプロセスであり、したがってJDBCインターフェースの実装として使用できます。

あなたのプログラムに一度だけ登録する必要があります。ドライバーを登録する方法は以下のいずれかの方法の1つです。

方法I - Class.forName()

ドライバーを登録する最も一般的な方法は、Javaの以下の方法を使用することです Class.forName() メソッドは、ドライバーのクラスファイルをメモリに動的にロードし、メモリ内で自動的に登録します。これは、ドライバーの登録を設定可能で移植可能にするため、選択可能な方法です。

以下の例では、Class.forName()を使用してOracleドライバーを登録します

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

以下のように使用できますgetInstance()メソッド不互換なJVMを解決するために、以下のように2つの追加のExceptionのコードを書く必要があります:

try {
   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}
catch(ClassNotFoundException ex) {
   System.out.println("エラー:ドライバークラスをロードできません!");
   System.exit(1);
catch(IllegalAccessException ex) {
   System.out.println("エラー:ロード中にアクセス問題が発生しました!");
   System.exit(2);
catch(InstantiationException ex) {
   System.out.println("エラー:ドライバーをインスタンス化できません!");
   System.exit(3);
}

方法二- DriverManager.registerDriver()

ドライバーを登録するために使用できる第二种の方法は、静的メソッドを使用することです DriverManager.registerDriver()

もし使用しているJVMがJDKに非互換である場合(例えば、Microsoftが提供するJVMの場合)、以下を使用する必要があります registerDriver() メソッド。

以下の例は、registerDriver()メソッドでOracleドライバを登録するためのものです。-

try {
   Driver myDriver = new oracle.jdbc.driver.OracleDriver();
   DriverManager.registerDriver(myDriver);
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

データベースURL形式

ドライバをロードした後、DriverManager.getConnection()メソッドを使用して接続を確立できます。参照のために、DriverManager.getConnection()の3つのオーバーロードメソッドを挙げます。

  • getConnection(String url)

  • getConnection(String url, Properties prop)

  • getConnection(String url, String user, String password)

ここでは、それぞれの形式にはデータベースが必要ですURL。データベースURLは、あなたのデータベースを指すアドレスです。

データベースURLの設定は、接続の多くの問題が発生する場所です。

以下の表には、一般的に使用されるJDBCドライバ名とデータベースURLが示されています。

データベースJDBCドライバ名URL形式
MySQLcom.mysql.jdbc.Driverjdbc:mysql://hostname/ databaseName
ORACLEoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@hostname:port Number:databaseName
DB2COM.ibm.db2.jdbc.net.DB2Driverjdbc:db2:hostname:port Number/databaseName
Sybasecom.sybase.jdbc.SybDriverjdbc:sybase:Tds:hostname:ポート番号/databaseName

URL形式で強調表示されている部分はすべて静的であり、残りの部分はデータベースの設定に基づいて変更する必要があります。

接続オブジェクトの作成

私たちは3つのものを挙げました DriverManager.getConnection() 接続オブジェクトを作成する方法です。

ユーザー名とパスワードを含むデータベースURLを使用して。

getConnection()が最もよく使用される形態では、データベースURLを渡します。ユーザー名およびパスワード

を使用していると仮定します。あなたがOracleのthin

TCP上でドライバーを使用している場合、URLのデータベース部分にはhost:port:databaseNameの値を指定します。 / IPアドレス192.0.0.1上にホストが存在し、ホスト名がamroodで、あなたのOracleリスナーがポート1521上、そしてあなたのデータベース名がEMPの場合、完全なデータベースURLは以下のようになります。-

jdbc:oracle:thin:@amrood:1521:EMP

今、あなたは正しいユーザー名とパスワードを使用してgetConnection()メソッドを呼び出し、Connectionオブジェクト、以下のようになります:

String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);

データベースURLのみを使用して。

DriverManager.getConnection()メソッドの第2形態は、データベースURLのみが必要です。-

DriverManager.getConnection(String url);

しかし、この場合、データベースURLにはユーザー名とパスワードが含まれており、以下の一般的な形式を持っています。-

jdbc:oracle:driver:username/password@database

したがって、以下のように上記の接続を作成できます。-

String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP";
Connection conn = DriverManager.getConnection(URL);

データベースURLと属性オブジェクトを使用して。

DriverManager.getConnection()メソッドの第3形態は、データベースURLとPropertiesオブジェクトが必要です。-

DriverManager.getConnection(String url, Properties info);

属性オブジェクトは、一連のキーワードを含んでいます。-値対。それにより、getConnection()メソッドの呼び出し中にドライバー属性をドライバーに渡します。

前の例と同じ接続を構築するには、以下のコードを使用してください-

import java.util.*;
String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );
Connection conn = DriverManager.getConnection(URL, info);

JDBC 接続を閉じる

JDBC プログラムの最後に、データベースのすべての接続を明示的に閉じることで、各データベースセッションを終了する必要があります。ただし、忘れた場合、Javaのガベージコレクタが古いオブジェクトをクリーンアップする際にその接続を閉じます。

特にデータベースプログラミングでは、ゴミ収集に依存することは非常に悪いプログラミング実践です。接続オブジェクトに関連付けられた close() メソッドを使用して常にデータベース接続を閉じる習慣を身につけるべきです。

接続を確実に閉じるために、コード内で「finally」ブロックを提供することができます。finallyブロックは、例外が発生するかどうかに関わらず常に実行されます。

上記で開いた接続を閉じるために、以下のように close() メソッドを呼び出す必要があります:

conn.close();

接続を明示的に閉じることでDBMSリソースを節約し、データベース管理者を満足させることができます。

より良い理解を得るために、以下を学習することをお勧めしますJDBC-サンプルコード教程