livewell babyPool howto (java.sql.Driverとして利用する)

java.sql.Driverとして利用する

java.sql.Driverとして利用するのは非常に簡単に出来ます。JDBC Driverをロード する時のコードと同じです。また、babyPoolは独自のURL形式を持ちません。このこ とにより既存のコードで「変更が必要」なのは読み込むJDBC Driverのclass nameだ けです。もし環境変数(-Djdbc.drivers=...)でそれを指定しているのならコードの 変更は「全く」必要ありません。どちらにしてもロードするDriverを

jp.livewell.baby.pool.jdbc.PoolDriver

に変更すれば良いだけです。(もちろん、ここまでに説明して来た 「設定」を行なってなければ動きません:-)。その うち設定無しでも動くようにはしたいのですが今回は間に合いませんでした)

コード例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


/**
 * test for Driver interface
 *
 * @author mitsuhito
 */
public class Test
{
    // main -------------------------------------------------------------------
    /**
     * main 
     * 
     * @param    args
     *		 index 0 = url
     *           index 1 = user
     *           index 2 = password
     */
    public static void main(String[] args)
    {
        if (args.length < 3) {
            System.err.println("usage param need:: [url] [user] [password]");
            System.exit(1);
        }

        Connection conn = null;
        try {
            conn = DriverManager.getConnection(args[0], args[1], args[2]);
            System.out.println("get JDBC Connection success!!\n"
                               + "Connection = " + conn);
        } catch (SQLException e) {
            System.err.println("something happen! stack trace...");
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    // do nothing
                }
            }
        }
    }
}
      

以下に上記コードの実行結果を抜粋します。ただ単に必要なjar fileへclasspathを 通しているだけです。

上記コード実行
[bash]$ java -classpath babyPool-0.1.0a-bin.jar:\
> crimson.jar:\
> jdbc2_0-stdext.jar:\
> pgjdbc2.jar:\
> . \
> -Djdbc.drivers=jp.livewell.baby.pool.jdbc.PoolDriver \
> Test jdbc:postgresql://127.0.0.1/hoge huga hoga

[ConnectionFactory: status] load JDBC Driver 'org.postgresql.Driver' success.
[ConnectionFactory: status] load JDBC Driver 'org.postgresql.Driver' success.
get JDBC Connection success!!
Connection = jp.livewell.baby.pool.jdbc.ConnectionWrapper@60420f
      

また、設定ファイルと違うurl, user等で接続すると(当然それが有効でなければな りませんが)プールを使用しないConnectionを返します。つまりDriverのWrapperの ような動作をしているので、babyPoolを使用すると決めるのに決断はいりませんし リスクもありません。気に入らなければ差し替えてしまえばそれで良いのです。


前へ 上へ 次へ