首页

java 日志拦截工具源码

java

2020-7-9

package com.yihaomen.interceptor;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

import org.hibernate.CallbackException;
import org.hibernate.EmptyInterceptor;
import org.hibernate.Session;
import org.hibernate.type.Type;

import com.yihaomen.util.AuditLogUtil;

public class AuditLogInterceptor extends EmptyInterceptor{
	
	Session session;
	private Set inserts = new HashSet();
	private Set updates = new HashSet();
	private Set deletes = new HashSet();
	
	public void setSession(Session session) {
		this.session=session;
	}
		
	@Override
	public String onPrepareStatement(String sql) {
		System.out.println("execute sql: "   sql);
		return super.onPrepareStatement(sql);
	}

	public boolean onSave(Object entity,Serializable id,
		Object[] state,String[] propertyNames,Type[] types)
		throws CallbackException {
		
		System.out.println("onSave");
		
		if (entity instanceof IAuditLog){
			inserts.add(entity);
		}
		return false;
			
	}
	
	public boolean onFlushDirty(Object entity,Serializable id,
		Object[] currentState,Object[] previousState,
		String[] propertyNames,Type[] types)
		throws CallbackException {
	
		System.out.println("onFlushDirty");
		
		if (entity instanceof IAuditLog){
			updates.add(entity);
		}
		return false;
		
	}
	
	public void onDelete(Object entity, Serializable id, 
		Object[] state, String[] propertyNames, 
		Type[] types) {
		
		System.out.println("onDelete");
		
		if (entity instanceof IAuditLog){
			deletes.add(entity);
		}
	}

	//called before commit into database
	public void preFlush(Iterator iterator) {
		System.out.println("preFlush");
	}	
	
	//called after committed into database
	public void postFlush(Iterator iterator) {
		System.out.println("postFlush");
		
		try{
		
			for (Iterator it = inserts.iterator(); it.hasNext();) {
				IAuditLog entity = (IAuditLog) it.next();
				System.out.println("postFlush - insert");
				
				AuditLogUtil.LogIt("Saved",entity);
			}	
			
			for (Iterator it = updates.iterator(); it.hasNext();) {
				IAuditLog entity = (IAuditLog) it.next();
				System.out.println("postFlush - update");
				AuditLogUtil.LogIt("Updated",entity);
			}	
			
			for (Iterator it = deletes.iterator(); it.hasNext();) {
				IAuditLog entity = (IAuditLog) it.next();
				System.out.println("postFlush - delete");
				AuditLogUtil.LogIt("Deleted",entity);
			}	
			
		} finally {
			inserts.clear();
			updates.clear();
			deletes.clear();
		}
	}	
	
}
资源下载此资源下载价格为2D币(VIP免费),请先
资源文件列表
Hibernate4-inteceptor/.classpath , 754
Hibernate4-inteceptor/.project , 1054
Hibernate4-inteceptor/.settings/.jsdtscope , 503
Hibernate4-inteceptor/.settings/org.eclipse.jdt.core.prefs , 395
Hibernate4-inteceptor/.settings/org.eclipse.wst.common.component , 628
Hibernate4-inteceptor/.settings/org.eclipse.wst.common.project.facet.core.xml , 305
Hibernate4-inteceptor/.settings/org.eclipse.wst.jsdt.ui.superType.container , 49
Hibernate4-inteceptor/.settings/org.eclipse.wst.jsdt.ui.superType.name , 6
Hibernate4-inteceptor/build/classes/com/yihaomen/common/App.class , 2156
Hibernate4-inteceptor/build/classes/com/yihaomen/common/AuditLog.class , 2603
Hibernate4-inteceptor/build/classes/com/yihaomen/common/Stock.class , 2370
Hibernate4-inteceptor/build/classes/com/yihaomen/interceptor/AuditLogInterceptor.class , 3416
Hibernate4-inteceptor/build/classes/com/yihaomen/interceptor/IAuditLog.class , 207
Hibernate4-inteceptor/build/classes/com/yihaomen/util/AuditLogUtil.class , 1622
Hibernate4-inteceptor/build/classes/com/yihaomen/util/HibernateUtil.class , 1390
Hibernate4-inteceptor/build/classes/hibernate.cfg.xml , 950
Hibernate4-inteceptor/conf/hibernate.cfg.xml , 1066
Hibernate4-inteceptor/src/com/yihaomen/common/AuditLog.java , 2201
Hibernate4-inteceptor/src/com/yihaomen/common/Stock.java , 1661
Hibernate4-inteceptor/src/com/yihaomen/interceptor/AuditLogInterceptor.java , 2591
Hibernate4-inteceptor/src/com/yihaomen/interceptor/IAuditLog.java , 149
Hibernate4-inteceptor/src/com/yihaomen/util/AuditLogUtil.java , 770
Hibernate4-inteceptor/src/com/yihaomen/util/HibernateUtil.java , 793
Hibernate4-inteceptor/src/hibernate.cfg.xml , 950
Hibernate4-inteceptor/src-test/com/yihaomen/common/App.java , 1572
Hibernate4-inteceptor/WebContent/META-INF/MANIFEST.MF , 39
Hibernate4-inteceptor/WebContent/WEB-INF/web.xml , 719
没有账号? 忘记密码?

社交账号快速登录