1.2.1 SQL出力機能
SQL出力機能は、サーブレット/JSPを使用して作られたJavaアプリケーションが実行するSQLをHSIC-ECDエビデンスファイルに出力します。これによって、Javaアプリケーションが正しいSQLを実行しているか容易に確認できます。
HSIC-ECDは、JDBCドライバを使用してサーブレット/JSPが実行したSQLの実行メソッドをフックし、そのSQLをHSIC-ECDエビデンスファイルに出力します。
SQL出力機能の概要を次の図に示します。
|
対応JDBCドライバ
SQL出力機能が対応しているJDBCドライバを次の表に示します。
DB名とバージョン |
JDBCドライバのファイル名 |
---|---|
HiRDB V9 |
pdjdbc4.jar |
SQLの出力契機
SQL出力機能が出力する契機は、次の表に示すインターフェースおよびメソッドを使用してSQLが実行されたときです。
インターフェース名 |
メソッド名 |
サポート状況 |
---|---|---|
java.sql.Statement |
execute(String sql) |
○ |
executeQuery(String sql) |
○ |
|
executeUpdate(String sql) |
○ |
|
java.sql.PreparedStatement |
execute() |
○ |
executeQuery() |
○ |
|
executeUpdate() |
○ |
|
java.sql.Statementから継承されたメソッド |
継承元と同じ |
|
java.sql.CallableStatement |
java.sql.Statementから継承されたメソッド |
継承元と同じ |
java.sql.PreparedStatementから継承されたメソッド |
継承元と同じ |
- (凡例)
-
○:サポートしています。
対応しているsetter
対応しているsetterを次の表に示します。
インターフェース名 |
メソッド名 |
サポート状況 (HiRDB) |
---|---|---|
java.sql.PreparedStatement |
setBigDecimal(int parameterIndex, BigDecimal x) |
○ |
setBoolean(int parameterIndex, boolean x) |
○ |
|
setByte(int parameterIndex, byte x) |
○ |
|
setBytes(int parameterIndex, byte[] x) |
○ |
|
setDate(int parameterIndex, Date x) |
○ |
|
setDate(int parameterIndex, Date x, Calendar cal) |
○ |
|
setDouble(int parameterIndex, double x) |
○ |
|
setFloat(int parameterIndex, float x) |
○ |
|
setInt(int parameterIndex, int x) |
○ |
|
setLong(int parameterIndex, long x) |
○ |
|
setNull(int parameterIndex, int sqlType) |
○ |
|
setShort(int parameterIndex, short x) |
○ |
|
setString(int parameterIndex, String x) |
○ |
|
setTime(int parameterIndex, Time x) |
○ |
|
setTime(int parameterIndex, Time x, Calendar cal) |
○ |
|
setTimestamp(int parameterIndex, Timestamp x) |
○ |
|
setTimestamp(int parameterIndex, Timestamp x, Calendar cal) |
○ |
|
java.sql.CallableStatement |
java.sql.PreparedStatementから継承されたメソッド |
継承元と同じ |
- (凡例)
-
○:サポートしています。
注意事項
-
SQL実行中に例外が発生した場合は、実行したSQLを出力できないことがあります。
-
アプリケーションサーバが自動で定期的に実行するSQLは、HSIC-ECDエビデンスファイルに出力しません。
-
エスケープ句を使用した場合、エスケープ処理後のSQLを出力することがあります。