目次へ

1.2. データベースへの接続

この節ではデータベースへの接続方法について説明します。これ節以降、しばらくデータベースとして「PostgreSQL7.3」を対象として説明します。

JDBC APIは「java.sql」パッケージにまとめられています。ですから特別、何もしなくてもJDBC APIは利用できますが、実際にデータベースと接続するためには使用するJDBCドライバをクラスパスに含める必要があります。PostgreSQLの場合は、「postgresql.jar」というファイル名でJDBCドライバが提供されていますので、それをクラスパスに含めるようにして下さい。

     import java.sql.*;
   
 public class DataBaseSample{
   public static void main(String args[]){
     try{
       Class.forName("org.postgresql.Driver");
     }catch(ClassNotFoundException e){
       e.printStackTrace();
       System.exit(1);
    }
    Connection connection;
    try{
      connection=DriverManager.getConnection("jdbc:postgresql:Training","postgres","");
    }catch(SQLException e){
      e.printStackTrace();
      System.exit(1);
    }
   (以下次節に続く)

JDBC APIを利用してデータベースにアクセスするためには、JDBCドライバを呼び出す必要があります。6行目がその処理を行っている部分で、「java.lang.Class」クラスの「forName」メソッドで呼び出しを行っています。このメソッドは引数で指定されたクラスをアプリケーションにロードするメソッドで、サンプルでは「org.postgresql.Driver」クラスをロードしています。このクラスは「java.sql.Driver」インタフェースを実装している、PostgreSQLのJDBCドライバ本体のクラスです。

データベースへの接続には「java.sql.DriverManager」クラスの「getConnection」メソッドを使用します。このクラスはJDBCドライバを管理するクラスです。「getConnection」メソッドでは、アプリケーションにロードされているJDBCドライバの中から、指定されたデータベースへ接続するのに適切なドライバを探し出し、そのドライバでデータベースへの接続を試みます。ドライバが見つからない場合、接続に失敗した場合には「java.sql.SQLException」例外を発生します。

接続を試みるデータベース名は「jdbc:(サブプロトコル名):(サブ名)」の形式で指定します。「サブプロトコル名」「サブ名」の部分をどのように指定するかは、データベースによって決まっています。PostgreSQLの場合は以下の3形式のいずれかを使用します。

jdbc:postgresql:(データベース名)
jdbc:postgresql://(ホスト名)/(データベース名)
jdbc:postgresql://(ホスト名):(ポート番号)/(データベース名)

ホスト名を省略した場合は「localhost」が、「ポート番号」を省略した場合はデフォルトのポート番号(5432)が使用されます。「getConnection」メソッドの2・3番目の引数は接続に使用するユーザ名とそのパスワードです。接続に成功すると「java.sql.Connection」オブジェクトを返します。

(実習課題1)

以下のプログラムを作成しなさい。

  • 任意のPostgreSQLのデータベースに接続するアプリケーション。
  • 接続するデータベース、接続の際に使用するユーザ、およびそのパスワードはプログラムの実行時に引数として指定する事。
  • 接続に成功した場合はその旨を表示してアプリケーションを終了すること。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp