读书人

ibatis怎么像hibernate监听事件

发布时间: 2012-11-05 09:35:11 作者: rapoo

ibatis怎样像hibernate监听事件
大家知道hibernate可以通过listener和Interceptor来监听处理的过程和事件,如auditable例子。
那么ibatis有没有这样的机制呢?package com.longtop.core.ibatis;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMapping;import com.ibatis.sqlmap.engine.mapping.statement.ExecuteListener;import com.ibatis.sqlmap.engine.mapping.statement.MappedStatement;public class AuditListener implements ExecuteListener {private static final Log logger = LogFactory.getLog(AuditListener.class);public void onExecuteStatement(MappedStatement mappedStatement) {ParameterMapping[] mappings=mappedStatement.getParameterMap().getParameterMappings();logger.debug(mappedStatement.getId());logger.debug(mappedStatement.getSql().getSql(null, null));for (int i = 0; i < mappings.length; i++) {logger.debug(mappings[i].getPropertyName()+"-----"+mappedStatement.getParameterMap().getParameterObjectValues(null, null)[i]);}}}
这个接口怎么得不到执行时的状态、参数值啊@Overridepublic void executeQuery(RequestScope request, Connection conn, String sql,Object[] parameters, int skipResults, int maxResults,RowHandlerCallback callback) throws SQLException {if (executeListeners != null) {for (Iterator iter = executeListeners.iterator(); iter.hasNext();) {ExecuteListener element = (ExecuteListener) iter.next();request.getStatement().addExecuteListener(element);}}super.executeQuery(request, conn, sql, parameters, skipResults,maxResults, callback);}

读书人网 >软件架构设计

热点推荐