[seasar-s2dao-dev:407] Re: [Seasar-user:9751] Re:[S2Pager]拡張PagerCondition使用時にSQLException

SETO Azusa [E-MAIL ADDRESS DELETED]
2007年 8月 9日 (木) 12:29:02 JST


せとあずさです。

On Wed, 8 Aug 2007 23:16:33 +0900
"Jundo Ishikawa" <[E-MAIL ADDRESS DELETED]> wrote:


>  ともあれ、ここまで色々考えてみて、悩み事が出てきてしまいました。
> 
> ・PreparedStatementFactoryとResultSetFactoryのどちらでやるか。
>  (案)従来と変わってしまいますが、PreparedStatementの方が実装とはマッチ
>     している気がするので、こっちが希望です。PreparedStatementもきっちり
>     クローズ出来ますし。
> 
> ・PreparedStatementFactoryでやるとした場合、LimitOffsetの方をどうするか。
>  (案)一端、LimitOffsetのコードを元(1.0.44)に戻して、新しい実装も追加す
>     る。従来のものは互換性維持の為のみに残し、新規には使って欲しくな
>     いというスタンスを取る。
> 

(あえて)PreparedStatementのことだけ考えるとS2のBasicSelectHandler#executeを
    protected Object execute(PreparedStatement ps) throws SQLException {
        if (resultSetHandler == null) {
            throw new EmptyRuntimeException("resultSetHandler");
        }
        ResultSet resultSet = null;
        try {
            resultSet = createResultSet(ps);
            return resultSetHandler.handle(resultSet);
        } finally {
            Statement st = null;
            if (resultSet != null) {
                st = resultSet.getStatement();
            }
            if (st != null && st != ps) {
                StatementUtil.close(st);
            } else {
                ResultSetUtil.close(resultSet);
            }
        }
    }

にすればcloseできるのでResultSetFactoryでやるままに
しておくのもありかと。

-- 
せとあずさ
[E-MAIL ADDRESS DELETED]
http://www.fieldnotes.jp/d/


seasar-s2dao-dev メーリングリストの案内