ibatis怎么像hibernate监听事件
ibatis怎样像hibernate监听事件
大家知道hibernate可以通过listener和Interceptor来监听处理的过程和事件,如auditable例子。
那么ibatis有没有这样的机制呢?
请问有例子吗?怎样加入啊
这个接口怎么得不到执行时的状态、参数值啊
大家知道hibernate可以通过listener和Interceptor来监听处理的过程和事件,如auditable例子。
那么ibatis有没有这样的机制呢?
1 楼
Readonly
2007-05-14
有:ExecuteListener
2 楼
fourfire
2007-05-14
引用
Readonly 5 小时前
有:ExecuteListener
有:ExecuteListener
请问有例子吗?怎样加入啊
3 楼
fourfire
2007-05-14
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]); } } }
这个接口怎么得不到执行时的状态、参数值啊
4 楼
fourfire
2007-05-14
另外用SqlExecutor的子类可以实现,难道要我自己写一个接口吗?到底行不行啊
@Override public 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); }