/* * 系统名称: QuickBundle --> QbRmWebDemo * * 文件名称: org.quickbundle.project.multidb --> CustomerContextHolder.java * * 功能描述: * * 版本历史: * 2008-8-7 下午01:33:07 创建1.0.0版 (Administrator) * */ package org.quickbundle.project.multidb; import org.quickbundle.base.exception.RmRuntimeException; import org.quickbundle.project.init.RmConfig; public class RmMultiDbHolder { private static final ThreadLocal contextHolder = new ThreadLocal(); /** * 功能: 设置当前线程的频道ID,数据源会自动切换到dataSource_频道ID * * @param customerType */ public static void setChannelId(String customerType) { if(RmConfig.isMultiDb()) { if(customerType == null || customerType.trim().length() == 0) { throw new RmRuntimeException("指定的分频道数据库为空,非法操作!"); } contextHolder.set(customerType); } } /** * 功能: 获取当前线程的频道ID * * @return */ public static String getChannelId() { if(RmConfig.isMultiDb()) { return (String) contextHolder.get(); } else { return null; } } /** * 功能: 清理当前频道ID,数据源会自动切换到dataSource,即主数据库 * */ public static void clearChannelId() { if(RmConfig.isMultiDb()) { contextHolder.remove(); } } }