我正在尝试向使用AspectJ的系统中执行的所有SQL添加一段特定的SQL。
我之前没有使用过AspectJ,但我相信我需要做的是在
上创建一个切入点call(PreparedStatement Connection.prepareStatement(String))
并提供建议
之前(Connection con,String sql): call(PreparedStatement Connection.prepareStatement(String)) &安培;&安培;目标(CON) &安培;&安培; args(sql){ sql =“exec myStordProc();” + sql; }
之后,Connection.prepareStatement()方法将继续使用更改后的String?
或者我应该拦截对prepareStatement和executeQuery的调用并创建一条建议,将其更改为addBatch()将我存储的procdure调用添加为第一批sql然后原始sql最终使用executeBatch()执行?
任何指针都会非常感激。
由于
答案 0 :(得分:1)
如果您想修改参数值,您需要使用周围的建议,以便您可以使用修改后的值进行调用:
around(...): ... {
proceed("exec myStordProc();" + sql);
}