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<NamedDataSource> dataSourceList;
|
private static NamedDataSource defaultDataSource;
|
private static NamedDataSource activeDataSource;
|
|
static {
|
logger = Logger.getLogger(DataSourceManager.class);
|
dataSourceList = new MapList<NamedDataSource>();
|
}
|
|
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<NamedDataSource> getDataSourceList() {
|
return dataSourceList.getItemList();
|
}
|
|
public static void setActiveSource(NamedDataSource dataSource) {
|
activeDataSource = dataSource;
|
}
|
}
|