JDBC接続データベース
JDBC接続の確立を含むプログラミングは非常に簡単です。ここに4つの簡単な手順があります。
JDBCパッケージのインポート:
インポートステートメントは、Javaコンパイラにコード内の参照を見つける場所を伝え、ソースコードの先頭にクラスを配置する場所を伝えます。
標準のJDBCパッケージを使用して、SQLテーブルからの選択、挿入、更新、削除を可能にし、ソースコードに次のインポートを追加します。
Java.sql。*をインポートします。 //標準のjdbcプログラムのためにjava.math。*; // BigDecimalおよびBigintegerサポートの場合
JDBCドライバーを登録してください:
使用する前に、プログラムにドライバーを登録する必要があります。登録ドライバーは、Oracleドライバーのクラスファイルがメモリにロードされるため、JDBCインターフェイスとして使用できる実装プロセスです。
この登録は、プログラムで一度だけ行う必要があります。ドライバーは、2つの方法のいずれかで登録できます。
方法(i) - class.forname():
ドライバーを登録する際の最も一般的な方法は、Javaのclass.forname()メソッドを使用して、ドライバーのクラスファイルをメモリに動的にロードすることであり、自動的に登録します。このアプローチは、ドライバーが簡単に移植できるように構成を登録できるため、望ましいです。
次の例では、class.forname()を使用してOracleドライバーを登録します。
try {class.forname( "oracle.jdbc.driver.oracledriver");} catch(classNotFoundException ex){system.out.println( "エラー:ドライバークラスをロードできない!"); system.exit(1);}getInstance()メソッドを使用して互換性のないJVMを解決できますが、2つの追加の例外が次のように記述されています。
try {class.forname( "oracle.jdbc.driver.oracledriver") system.exit(1); catch(Illegalaccessexception ex){system.out.println( "エラー:ロード中のアクセス問題!"); system.exit(2); catch(instantiationexception ex){system.out.println( "エラー:ドライバーをインスタンス化できない!"); system.exit(3);}方法(ii)-drivermanager.registerdriver():
ドライバーを登録するためにそれを使用する2番目の方法は、staticdrivermanager.registerdriver()メソッドを使用することです。
たとえば、互換性のないJDK JVMを使用している場合は、MicrosoftがRegisterDriver()を使用してメソッドを提供する必要があります。
次の例では、RegisterDriver()を使用してOracleドライバーを登録します。
try {driver mydriver = new oracle.jdbc.driver.oracledriver(); drivermanager.registerdriver(mydriver);} catch(classNotFoundException ex){system.out.println( "エラー:ドライバークラスをロードできない!"); system.exit(1);}データベースURL定式化:
ドライバーをロードするときは、drivermanager.getConnection()メソッドを使用してプログラムに接続を確立できます。簡単に参照するために、3つの過負荷drivermanager.getConnection()メソッドをリストしましょう。
ここで、各フォームにはデータベースURLが必要です。データベースのURLはデータベースアドレスを指します。
データベースURLの開発は、接続を確立するために最も一般的に使用されます。
次の表には、人気のあるJDBCドライバー名とデータベースURLを示します。
RDBMSJDBCドライバー名URL形式
mysql com.mysql.jdbc.driver jdbc:mysql:// hostname/databasenameoracle oracle.jdbc.driver.oracledriver jdbc:oracle:thin:@hostname:hostname:port number:databasenamedb2 com.ibm.db2.jdbc.net.db2dbc番号/DataBasEnamesYbase com.sybase.jdbc.sybdriver JDBC:Sybase:TDS:HOSTNAME:ポート番号/DataBasename
URL形式で強調表示されているすべてのパーツは静的であり、データベース設定に従って残りのパーツのみを変更する必要があります。
接続オブジェクトの作成:データベースURLのユーザー名とパスワードを使用します。
次の3つの形式のdrivermanager.getConnection()メソッドを使用して、接続オブジェクトを作成します。 getConnection()の最も一般的な形式では、データベースURL、ユーザー名、パスワードを渡す必要があります。
URLデータベースのDataBaseNameの値:OracleのThinドライバーを使用していると仮定すると、ホスト:ポートを指定する必要があります。
ホストTCP/IPアドレス192.0.0.1があり、ホスト名とOracleリスナーがポート1521で構成されていると仮定し、データベース名はEMPであり、完全なデータベースURLは次のとおりです。
JDBC:Oracle:Thin:@Amrood:1521:Emp
これで、以下に示すように、接続オブジェクトを取得するには、適切なユーザー名とパスワードとgetConnection()メソッドを呼び出す必要があります。
string url = "jdbc:oracle:thin:@amrood:1521:emp"; string user = "username"; string pass = "password" connect conn = drivermanager.getConnection(url、user、pass);
1つのデータベース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"; connect conn = drivermanager.getConnection(url);
データベースURLとプロパティオブジェクトを使用します。
drivermanager.getConnection()メソッドの3番目の形式には、データベースURLとプロパティオブジェクトが必要です。
drivermanager.getConnection(String URL、Properties Info);
プロパティオブジェクトは、キーワード値のペアのセットを保存します。ドライバー属性がドライバーに渡されたときに、getConnection()メソッドを呼び出すために使用されます。
前の例で同じ接続を作成するには、次のコードを使用します。
Java.util。*; string url = "jdbc:oracle:thin:@amrood:@amrood:1521:emp"; properties info = new Properties(); info.put( "user"、 "username"); info.put( "password"、 "password"); connect conn = drivermanager.getConnection(url、info);
JDBC接続を閉じる:
JDBCプログラムの最後に、各データベースセッションを終了するために、データベースへのすべての接続を閉じていることが明示的に必要です。ただし、忘れた場合、Java Garbage Collectorは接続を閉じ、古いオブジェクトをクリアします。
特にデータベースプログラミングでのゴミコレクションに依存することは、非常に不十分なプログラミング習慣です。接続オブジェクトに関連付けられたclose()メソッドを閉じる習慣に常に存在する必要があります。
接続が閉じていることを確認するために、コード内の最終的にブロックで実行できます。最後に、ブロックが実行されるかどうかにかかわらず実行されます。
上で開く接続を閉じるには、閉じる()メソッドを次のように呼び出す必要があります。
conn.close();
DBMSへの接続を明示的に閉じて、リソースを節約します。
JDBCアプリケーションを作成します。
JDBCアプリケーションの構築には6つのステップがあります。
サンプルコード:
この例は、JDBCアプリケーションを構築する必要がある場合にテンプレートとして使用できます。
このサンプルコードは、前の章の環境とデータベースのインストールに基づいて書かれています。
次の例をコピーして、firstexample.java、次のようにコンパイルして実行します。
//ステップ1。必要なpackagesimport java.sql。*; public class firstexample {// jdbcドライバー名とデータベースurl static final string jdbc_driver = "com.mysql.jdbc.driver";静的最終文字列db_url = "jdbc:mysql:// localhost/emp"; //データベース資格情報静的な最終文字列ユーザー= "username";静的な最終文字列パス= "パスワード"; public static void main(string [] args){connection conn = null;ステートメントstmt = null; try {//ステップ2:JDBCドライバーclass.fornameを登録する( "com.mysql.jdbc.driver"); //ステップ3:接続system.out.println( "データベースへの接続..."); conn = drivermanager.getConnection(db_url、user、pass); //ステップ4:クエリSystem.out.println( "作成ステートメント...")を実行する; stmt = conn.createstatement();文字列sql; sql = "IDを選択、最初、最後、従業員からの年齢";結果rs = stmt.executequery(sql); //ステップ5:結果セットからデータを抽出しますwhile(rs.next()){//列名前で取得int id = rs.getint( "id"); int age = rs.getint( "age");文字列first = rs.getString( "first");文字列last = rs.getString( "last"); //値system.out.print( "id:" + id); System.out.print( "、age:" + age); System.out.print( "、first:" + first); system.out.println( "、last:" + last); } //ステップ6:クリーンアップ環境rs.Close(); stmt.close(); conn.close(); } catch(sqlexception se){// jdbc se.printstacktrace()のエラーを処理します。 } catch(例外e){// class.forname e.printstacktrace()のエラーを処理します。 }最後に{//最後にブロックはリソースを閉じるために使用されます{if(stmt!= null)stmt.close(); } catch(sqlexception se2){} //私たちができることは何もありません{if(conn!= null)conn.close(); } catch(sqlexception se){se.printstacktrace(); } //最後にtry try} // try system.out.println( "goodbye!"); } // end main} // firstexampleを終了します次に、上記の例を次のようにコンパイルしましょう。
C:> Javac firstExample.java
FirstExampleを実行すると、次の結果が生成されます。
C:> Java FirstExample
データベースへの接続...ステートメントの作成... id:100、age:18、first:zara、last:aliid:aliid:101、age:25、first:mahnaz、last:fatmaid:102、age:30、first:zaid、last:khanid:103、age:28、first:sumit、last:mittal:mittal