마이바티스

인터셉터를 이용한 로그 기록

봄산 2017. 5. 29. 23:10


@Intercepts({@Signature(type=StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class})})

public class SelectIntercepter  implements Interceptor{


static Logger  logger =  Logger.getLogger( SelectIntercepter.class.getName()); 

public Object intercept(Invocation invocation) throws Throwable {

StatementHandler handler = (StatementHandler)invocation.getTarget();

        

        // 쿼리

        String sql = handler.getBoundSql().getSql();

         

        logger.info("sql:"+sql);

        

        

        String param = handler.getParameterHandler().getParameterObject()!=null ?

                             handler.getParameterHandler().getParameterObject().toString() : "";

         

        // DB에다 로그 insert

        /////////////////

        ////////////////

        

        logger.info("param:"+param);

        

        return invocation.proceed();



}


/* (non-Javadoc)

* @see org.apache.ibatis.plugin.Interceptor#plugin(java.lang.Object)

*/

public Object plugin(Object target) {

return Plugin.wrap(target, this);


}


/* (non-Javadoc)

* @see org.apache.ibatis.plugin.Interceptor#setProperties(java.util.Properties)

*/

public void setProperties(Properties arg0) {

// TODO Auto-generated method stub

}


}