package com.conant.ums.db; import java.sql.*; import java.util.Hashtable; import javax.naming.*; import javax.sql.DataSource; import com.conant.ums.util.Log; /** * <p> *˵�������������ݿ���ʽӿ�DataBaseAcc�ĸ��࣬���ṩ�����ݿ����ӵĻ���API�� *</p> *<p> *���ڣ� *���ߣ� *</p> **/ public class DbConnection { private static Hashtable htDS = new Hashtable(); //private static DataSourcePara mDataSourcePara = null; //private static JdbcPara mJdbcPara = null; //DataSourceConnection public static Connection connectDataSource(DataSourcePara mDataSourcePara) { DataSource ds = null; String dsKey = null; Connection mConn = null; ds = (DataSource) htDS.get(mDataSourcePara.DbKey); if (ds == null) { //mDataSourcePara = DbConfig.getDataSourcePara(key); Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY, mDataSourcePara.InitContext); ht.put(Context.PROVIDER_URL, mDataSourcePara.ProviderUrl); try { Context ctx = new InitialContext(ht); ds = (DataSource) ctx.lookup(mDataSourcePara.DataSource); htDS.put(mDataSourcePara.DbKey, ds); } catch (Exception e) { Log.error("DataSourceConnection Error:" + e.getMessage()); } } try { Log.debug("In DbConnection UserName=" + mDataSourcePara.UserName + ";length=" + mDataSourcePara.UserName.length()); if (mDataSourcePara.UserName == null || mDataSourcePara.UserName == "") { mConn = ds.getConnection(); } else { mConn = ds.getConnection(mDataSourcePara.UserName, mDataSourcePara.Password); } return (mConn); } catch (SQLException e) { Log.error("DataSourceConnection Error:" + e.getMessage()); } return (mConn); } //JdbcConnection public static Connection connectJdbc(JdbcPara mJdbcPara) { Connection mConn = null; Log.debug("classpath is " + System.getProperty("java.class.path")); Log.debug("In connectJdbc,mJdbcPara =" + mJdbcPara); try { Class.forName(mJdbcPara.DbDriver); } catch (ClassNotFoundException e) { Log.error("Can't find Class name for Database Driver: " + mJdbcPara.DbDriver); //throw new SQLException("Can't find Class name for Database Driver: " + mJdbcPara.DbDriver); } try { mConn = DriverManager.getConnection(mJdbcPara.DbUrl, mJdbcPara.UserName, mJdbcPara.Password); return (mConn); } catch (SQLException e) { Log.error("GetConnection error: DbUrl=" + mJdbcPara.DbUrl + ";UserName=" + mJdbcPara.UserName + ";Password=" + mJdbcPara.Password); //throw new SQLException("Can't find Class name for Database Driver: " + mJdbcPara.DbDriver); } return (mConn); } }