| OracleのUnicode問題 Booleanの扱い SQLのログの取得 ## OracleのUnicode問題 OracleのJDBC Driverは、Unicodeのマッピングに一部問題があり、～が化けてしまいます。この問題に対処するには、jdbc.diconのResultSetFactoryの設定を変更します。通常は下記のようになっています。
    <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
    <!--
    <component class="org.seasar.extension.jdbc.impl.OracleResultSetFactory"/>
    -->
BasicResultSetFactoryの部分をコメントアウトし、かわりに直ぐ下のOracleResultSetFactoryの部分のコメントをはずし有効にします。
    <!--
    <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
    -->
    <component class="org.seasar.extension.jdbc.impl.OracleResultSetFactory"/>
## Booleanの扱い Oracleのようにboolean型に対応していないRDBMSもあります。この問題に対処するには、jdbc.diconのStatementFactoryの設定を変更します。通常は下記のようになっています。
    <component class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
      <arg>
        <component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
        <!--
        <component class="org.seasar.extension.jdbc.impl.BooleanToIntStatementFactory"/>
        -->
        ...
      </arg>
    </component>
BasicStatementFactoryの部分をコメントアウトし、かわりにBooleanToIntStatementFactoryの部分のコメントをはずし有効にします。
    <component class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
      <arg>
        <!--
        <component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
        -->
        <component class="org.seasar.extension.jdbc.impl.BooleanToIntStatementFactory"/>
        ...
      </arg>
    </component>
## SQLのログの取得 S2JDBCで実行したSQLはログとして記録されるためアプリケーションから参照することが可能です。 SQLのログは`org.seasar.extension.jdbc.SqlRegistry`のインスタンスから取得します。 `SqlRegistry`のインスタンスはDIもしくはルックアップにより取得できます。 DIのための設定は次のようになります。
    <component name="sqlLogRegistry" class="org.seasar.extension.jdbc.SqlLogRegistry">
      @org.seasar.extension.jdbc.SqlLogRegistryLocator@getInstance()
    </component>
プログラムから直接ルックアップする場合は次のようなコードが必要です。
    SqlLogRegistry sqlLogRegistry = SqlLogRegistryLocator.getInstance();
`SqlRegistry`のインスタンスは複数のログを保持しています（デフォルトでは最新3つのログを保持します）。 最新の（最後に実行された）SQLのログは次のようなコードで取得できます。
    SqlLog sqlLog = sqlLogRegistry.getLast();
`org.seasar.extension.jdbc.SqlLog`のインスタンスは次の情報を保持しています。 未加工のSQL バインド変数を実際の値で置き換えた完全なSQL SQLにバインドされる値の配列 SQLにバインドされる値の型の配列 |
| Copyright© 2004-2005, The Seasar Foundation and the others. All rights reserved.