package frame.persist; import java.sql.Connection; import java.sql.SQLException; import java.util.List; import org.apache.log4j.Logger; import frame.util.MapList; public class DataSourceManager { private static Logger logger; private static MapList dataSourceList; private static NamedDataSource defaultDataSource; private static NamedDataSource activeDataSource; static { logger = Logger.getLogger(DataSourceManager.class); dataSourceList = new MapList(); } public static Connection createConnection() { try { if (activeDataSource != null) { return activeDataSource.getConnection(); } return defaultDataSource.getConnection(); } catch (SQLException e) { logger.error(e); return null; } } public static Connection createConnection(String name) { try { NamedDataSource dataSource = dataSourceList.get(name); if (dataSource == null) { return null; } return dataSource.getConnection(); } catch (SQLException e) { logger.error(e); return null; } } public static void appendDataSource(NamedDataSource dataSource) throws SQLException { String name = dataSource.getName(); if (name == null) { return; } dataSourceList.add(name, dataSource); if (defaultDataSource == null) { defaultDataSource = dataSource; } } public static NamedDataSource getDataSource(String code) { if (code == null) { return null; } return dataSourceList.get(code); } public static List getDataSourceList() { return dataSourceList.getItemList(); } public static void setActiveSource(NamedDataSource dataSource) { activeDataSource = dataSource; } }