Firebird JDBC Driverを使ってみる

import java.sql.*;
import java.io.*;
import javax.resource.ResourceException;

public class FirebirdExample {
  public static void main (String args [])
  throws SQLException, IOException, ClassNotFoundException {
    DriverManager.registerDriver(new org.firebirdsql.jdbc.FBDriver());
    //Class.forName("org.firebirdsql.jdbc.FBDriver");

    // 接続情報をセットします。
    String user     = "urano";
    String password = "urano399";
    String database = "C:\\usr\\dbms\\fb\\udb.gdb";

    Connection conn =
      DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:" +
      database, user, password);

    System.out.println ("connected.");

    // SQL文(DML文)を作ります。
    Statement stmt = conn.createStatement ();

    // SELECT文の場合はexecuteQuery()を実行します。
    ResultSet rset
      = stmt.executeQuery(
      "SELECT SHITEN_CODE, SHITEN_NAME, EMPLOYEE_NUM FROM SHITEN");

    while (rset.next())
      System.out.println(rset.getString (1) + "\t" + rset.getString(2) + "\t"
        + rset.getInt(3));

    System.out.println ("Your JDBC installation is correct.");
    // 結果セットを解放
    rset.close();
    // SQL文を解放
    stmt.close();
    // データベースから切断して、完了。
    conn.close();
  }
}
// end.

 Firebirdに接続するサンプルですが、 前のPostgreSQL、MySQLとほとんど変わったところはありません。 DSN文字列のポート番号のスラッシュとコロンの位置関係がちょっとトリッキーな感じではあります。
 ただ、このJDBCドライバはJ2EEのAPIを使うので、 それを実装しているライブラリが必要になります。 最初私は Sunが配布しているJ2EE SDK 1.3.1 RIに入っているj2ee.jar にCLASSPATHを通したところ、javacでコンパイルはできますが、 javaコマンドで実行しようとするとjavax.resource.ResourceException がNoClassDefFoundErrorになってしまいました。 そこで、j2ee.jar を $JAVA_HOME/jre/lib/ext にコピーすると、 javacもjavaも正しく動作しました。 しかし、今度はJakarta Tomcatが起動しなくなってしまいました。

 このようにjavax.resource.ResourceException が出る場合には、 JDBCドライバの配布アーカイブに一緒に入っている、 mini-j2ee.jar というJARファイルをCLASSPATHに通すか、 $JAVA_HOME/jre/lib/ext に置くと解決します。

JDBC and Swing Top

(first uploaded 2003/01/30 last updated 2003/01/30, URANO398)

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!