ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

JDBCプログラミング

JDBCでHello world!

 プログラムと言えば、「Hello world!」からというわけで、JDBCを使ったサンプルプログラムを作成しながら、JDBCの使い方を解説します。 単に「Hello world!」と表示するだけでは面白くありませんので、hellodbというデータベースに、hellotblという表を作成し、その中に、「Hello world!」という文字を登録してから、検索するということを行います。
 このプログラムを実行するためには、JDKと、データベース(PostgreSQL)とJDBCドライバのインストールが必要であることは当然として、hellodbというデータベースも作成しておく必要があります。

unix# createdb hellodb

 以下のソースプログラムを作成します。
 JDBCでプログラムする場合には、最初に、Class.forNameで、JDBCドライバをロードする必要があります。
 使用するオブジェクトは、データベースとの接続情報を管理するDB接続オブジェクト(db)と、実行するSQL文を管理するSQL文オブジェクト(st)と、SQLの問合せ結果を管理する問合せ結果オブジェクト(rs)の3つです。
 データベースに接続するためには、以下の書式のURLを使います。

・PostgreSQLの場合
 jdbc:postgresql:[//ホスト名[:ポート番号]/]DB名

・Oracle(タイプ4)の場合
 jdbc:oracle:thin:@ホスト名:ポート番号:オラクルSID

 エラーが発生した場合は、エラーを表示して終了します。 既に、hellotblという表が存在する場合などは、エラーをcatchして処理することも可能ですが、実施していません。

hello.java
import java.sql.*;

public class hello {
  public static void main (String args[]) {
    Connection db = null; // DB接続オブジェクト
    Statement  st = null; // SQL文オブジェクト
    ResultSet  rs = null; // 問合せ結果オブジェクト

    String url = "jdbc:postgresql:hellodb"; // URL
    String usr = "joe"; // ユーザ名
    String pwd = "";    // パスワード

    try {
      // JDBCドライバのロード
      Class.forName("org.postgresql.Driver");

      // データベース接続
      System.out.println("Connecting to " + url);
      db = DriverManager.getConnection(url, usr, pwd);
      st = db.createStatement();

      // 表の作成
      st.executeUpdate("create table hellotbl (item varchar(16))");

      // データの登録
      st.executeUpdate("insert into hellotbl values ('Hello world!')");
      st.executeUpdate("insert into hellotbl values ('ようこそ!')");

      // データの検索
      rs = st.executeQuery("select * from hellotbl");
      if (rs != null) {
        while (rs.next()) {
          String item = rs.getString("item");
          System.out.println(item);
        }
      }
      rs.close();

      // 表の削除
      st.executeUpdate("drop table hellotbl");

      // データベース切断
      st.close();
      db.close();

    // エラー処理
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

 プログラムができたら、コンパイルして実行します。

unix# javac hello.java
unix# java hello
Connecting to jdbc:postgresql:hellodb
Hello world!
ようこそ!


Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp