1

AspectJを使用してシステムで実行されるすべてのSQLに特定のSQLを追加しようとしています。

私はこれまでAspectJを使用したことがありませんが、私がする必要があるのはポイントカットを作成することだと思います

call(PreparedStatement Connection.prepareStatement(String))

アドバイスを提供します

before(Connection con、String sql):call(PreparedStatement Connection.prepareStatement(String))&& target(con)&& args(sql){sql = "exec myStordProc();" + sql; }

その後、Connection.prepareStatement()メソッドは変更された文字列を続行しますか?

または、prepareStatementとexecuteQueryの呼び出しをインターセプトし、これをaddBatch()に変更するアドバイスを作成して、保存されたprocdure呼び出しを最初のバッチSQLとして追加し、次に元のSQLをexecuteBatch()で最後に実行する必要がありますか?

任意のポインタをいただければ幸いです。

ありがとう

4

1 に答える 1

1

パラメータ値を変更したい場合は、変更した値で呼び出しを行うことができるようにアドバイスを回避する必要があります。

around(...): ... {
    proceed("exec myStordProc();" + sql);
}
于 2011-03-09T10:51:16.667 に答える