2010年8月14日土曜日

データベース接続用JavaBeans

最終的にはコネクションをプールするデータソースクラスを目指します。

まずは接続とResultSetの返却用クラスを作成しました。
これを徐々に改良していきJSPからJavaBeansとして利用します。

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package datasource;

import java.sql.*;

public class DBAccessBean {

private String driver;
private String url;
private String user;
private String password;
private Connection connection;
private Statement statement;
private ResultSet resultset;

/**
* コンストラクタ
* @param driver ドライバー
* @param url URL
* @param user ユーザー名
* @param password パスワード
*/
public DBAccessBean(String driver, String url, String user, String password) {
this.driver = driver;
this.url = url;
this.user = user;
this.password = password;
}

/**
* 引数なしのコンストラクタ
* 既定値を使用する
*/
public DBAccessBean() {
driver = "org.postgresql.Driver";
url = "jdbc:postgresql:karte";
user = "postgres";
password = "momoco";
}

/**
* データベースへの接続を行う
*/
public synchronized void open() throws Exception {
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);
statement = connection.createStatement();
}

/**
* SQL 文を実行した結果の ResultSet を返す
* @param sql SQL 文
*/
public ResultSet getResultSet(String sql) throws Exception {
if ( statement.execute(sql) ) {
return statement.getResultSet();
}
return null;
}

/**
* SQL 文の実行
* @param sql SQL 文
*/
public void execute(String sql) throws Exception {
statement.execute(sql);
}

/**
* データベースへのコネクションのクローズ
*/
public synchronized void close() throws Exception {
if ( resultset != null ) resultset.close();
if ( statement != null ) statement.close();
if ( connection != null ) connection.close();
}
}

0 件のコメント:

コメントを投稿