package jef.database.support; import jef.database.IQueryableEntity; import jef.database.Session; import jef.database.Transaction; /** * 数据库操作的监听器 * @author Administrator * */ public interface DbOperatorListener { /** * 当一个对象将被删除时执行 * @param obj 请求 * @param db 所操作的事务或db */ void beforeDelete(IQueryableEntity obj,Session db); /** * 当一个对象被删除后执行 * @param obj 请求 * @param n 操作记录条数 * @param db 所操作的事务或db */ void afterDelete(IQueryableEntity obj, int n,Session db); /** * 当对象更新前执行 * @param obj 请求 * @param db */ void beforeUpdate(IQueryableEntity obj,Session db); /** * 当对象更新后执行 * @param obj 请求 * @param n 更新条数 * @param db */ void afterUpdate(IQueryableEntity obj, int n,Session db); /** * 当一个新的事务开启时执行 * @param transaction */ void newTransaction(Transaction transaction); /** * 当事务回滚前执行 * @param transaction */ void beforeRollback(Transaction transaction); /** * 当一个事务回滚后执行 * @param transaction */ void postRollback(Transaction transaction); /** * 当事务提交时执行 * @param transaction */ void beforeCommit(Transaction transaction); /** * 当事务提交后 * @param transaction */ void postCommit(Transaction transaction); /** * 当事务关闭时执行 * @param transaction */ void tracsactionClose(Transaction transaction); /** * 当对象插入数据库前执行 * @param obj * @param abstractDbClient */ void beforeInseret(IQueryableEntity obj, Session abstractDbClient); /** * 当对象插入数据库后执行 * @param obj * @param abstractDbClient */ void afterInsert(IQueryableEntity obj, Session abstractDbClient); /** * 在SQL语句执行之前 * @param sql * @param params */ void beforeSqlExecute(String sql, Object... params); /** * 在SQL语句执行之后 * @param sql * @param n * @param params */ void afterSqlExecuted(String sql, int n,Object... params); /** * Before select sql * @param sql * @param params */ void beforeSelect(String sql,Object... params); /** * 当整个DbClient关闭时执行 */ void onDbClientClose(); }