1 25 26 27 package org.nemesis.forum.util.jdbc; 28 29 import java.sql.Connection ; 30 31 import org.apache.commons.logging.Log; 32 import org.apache.commons.logging.LogFactory; 33 import org.nemesis.forum.config.ConfigLoader; 34 35 36 37 41 public class DbConnectionManager { 42 43 static protected Log log =LogFactory.getLog(DbConnectionManager.class); 44 45 private static DbConnectionProvider connectionProvider; 46 private static Object providerLock = new Object (); 47 48 52 public static Connection getConnection() { 53 if (connectionProvider == null) { 54 synchronized (providerLock) { 55 if (connectionProvider == null) { 56 try { 58 59 connectionProvider =(DbConnectionProvider) Class.forName(ConfigLoader.getInstance().getConfig().getJDBCConnectionProviderClass()).newInstance(); 60 connectionProvider.start(); 61 } catch (Exception e) { 62 log.fatal( 63 "check db.connectionProvider.className in nemesis-forum-config.properties:"+ConfigLoader.getInstance().getConfig().getJDBCConnectionProviderClass(), 64 e); 65 } 66 } 67 68 } 69 70 } 71 return connectionProvider.getConnection(); 72 } 73 74 80 public static DbConnectionProvider getDbConnectionProvider() { 81 return connectionProvider; 82 } 83 84 90 public static void setDbConnectionProvider(DbConnectionProvider provider) { 91 synchronized (providerLock) { 92 if (connectionProvider != null) { 93 connectionProvider.destroy(); 94 connectionProvider = null; 95 } 96 connectionProvider = provider; 97 provider.start(); 98 } 99 } 100 101 } 102 | Popular Tags |