All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yuweix.kuafu.dao.hibernate.DynamicTableInspector Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
package com.yuweix.kuafu.dao.hibernate;


import com.yuweix.kuafu.sharding.context.TableHolder;
import org.hibernate.resource.jdbc.spi.StatementInspector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * 动态修改表名拦截器
 * @author yuwei
 */
public class DynamicTableInspector implements StatementInspector {
	private static final Logger log = LoggerFactory.getLogger(DynamicTableInspector.class);

	public DynamicTableInspector() {

	}

	@Override
	public String inspect(String sql) {
		final String srcName = TableHolder.getSrcName();
		final String targetName = TableHolder.getTargetName();
		if (srcName == null || targetName == null || srcName.equals(targetName)) {
			return sql;
		}
		log.info("Original SQL: {}", sql);
		String actualSql = sql.replaceAll(srcName, targetName);
		log.info("Actual SQL: {}", actualSql);
		return actualSql;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy