English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
対応するドライバーがインストールされた後、JDBCを使用してデータベース接続を構築できます。
JDBC接続を構築するためのプログラミングは非常にシンプルです。これらのシンプルな4つのステップです-
JDBCパッケージのインポート:Javaプログラムに以下の文を追加します importJavaコードで必要なクラスをインポートするために使用されます。
JDBCドライバーの登録: このステップにより、JVMが必要なドライバーの実装をメモリにロードし、JDBCリクエストを満たすことができます。
データベース URL 設定: これは、正しい形式のアドレスを作成し、接続したいデータベースに指し示すためです。
接続オブジェクトの作成:最後に、以下のように記述しますDriverManagerオブジェクトのgetConnection()メソッドの呼び出しコードは、実際のデータベース接続を確立するために使用されます。
Import文は、コード中で参照されるクラスがどこに見つかるかをJavaコンパイラに教えます。これは、ソースコードの先頭に配置されます。
標準JDBCパッケージ(データベーステーブルのデータを選択、挿入、更新、削除を許可する)を使用するには、以下のインポートをソースコードに追加してください
import java.sql.* ; // 標準JDBCプログラム用 import java.math.* ; // BigDecimalおよびBigIntegerのサポートを取得
ドライバーを使用する前に、プログラムにドライバーを登録する必要があります。ドライバーを登録することは、Oracleドライバーのクラスファイルをメモリに読み込むプロセスであり、したがってJDBCインターフェースの実装として使用できます。
あなたのプログラムに一度だけ登録する必要があります。ドライバーを登録する方法は以下のいずれかの方法の1つです。
ドライバーを登録する最も一般的な方法は、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() 。
もし使用している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); }
ドライバをロードした後、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形式 |
---|---|---|
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://hostname/ databaseName |
ORACLE | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname:port Number:databaseName |
DB2 | COM.ibm.db2.jdbc.net.DB2Driver | jdbc:db2:hostname:port Number/databaseName |
Sybase | com.sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname:ポート番号/databaseName |
URL形式で強調表示されている部分はすべて静的であり、残りの部分はデータベースの設定に基づいて変更する必要があります。
私たちは3つのものを挙げました DriverManager.getConnection() 接続オブジェクトを作成する方法です。
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);
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);
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 プログラムの最後に、データベースのすべての接続を明示的に閉じることで、各データベースセッションを終了する必要があります。ただし、忘れた場合、Javaのガベージコレクタが古いオブジェクトをクリーンアップする際にその接続を閉じます。
特にデータベースプログラミングでは、ゴミ収集に依存することは非常に悪いプログラミング実践です。接続オブジェクトに関連付けられた close() メソッドを使用して常にデータベース接続を閉じる習慣を身につけるべきです。
接続を確実に閉じるために、コード内で「finally」ブロックを提供することができます。finallyブロックは、例外が発生するかどうかに関わらず常に実行されます。
上記で開いた接続を閉じるために、以下のように close() メソッドを呼び出す必要があります:
conn.close();
接続を明示的に閉じることでDBMSリソースを節約し、データベース管理者を満足させることができます。
より良い理解を得るために、以下を学習することをお勧めしますJDBC-サンプルコード教程。