package com.conant.ums.db; import java.util.Hashtable; import com.conant.ums.util.*; /** * <p> ˵���� * ��db.propertiesȡ�����ݿ����ӵ�������Ϣ * </p> */ public class DbConfig { private static Config cfg = new Config("db"); private static Hashtable htPara = new Hashtable(); public static Object getPara() { return (getPara("")); } public static Object getPara(String key) { Object oPara = null; String tmpKey = null; String DbKey = null; if (key == "") { tmpKey = ""; DbKey = "__Default__"; } else { tmpKey = key + "."; DbKey = key; } oPara = htPara.get(DbKey); if (oPara == null) { String mType = cfg.getValue(tmpKey + "Type"); if (mType.equalsIgnoreCase("datasource")) { //�����ͨ��datasource�������ݿ� oPara = getDataSourcePara(key); } else { //�����ͨ��jdbc�����������ݿ� oPara = getJdbcPara(key); } htPara.put(DbKey, oPara); } return (oPara); } /** *ȡӦ�÷���������Դ�����÷�������ȱʡ����Դ������ȡ�ö�Ӧ��������Ϣ�� *@return DataSourcePara value��Ϊ����Դ���õ�ֵ�� */ public static DataSourcePara getDataSourcePara() { return (DbConfig.getDataSourcePara("")); } /** *ȡӦ�÷���������Դ�����÷������Ը�����Դ������ȡ�ö�Ӧ��������Ϣ�� *@param String key������Դ�ļ����� *@return DataSourcePara value��Ϊ����Դ���õ�ֵ�� */ public static DataSourcePara getDataSourcePara(String key) { DataSourcePara mDataSourcePara = new DataSourcePara(key); //��������ǰ׺ String tmpKey = null; //System.out.println( "key=" + key); if (key == "") { tmpKey = ""; mDataSourcePara.DbKey = "__Default__"; } else { tmpKey = key + "."; mDataSourcePara.DbKey = key; } //System.out.println( "tmpKey=" + tmpKey); String mType = cfg.getValue(tmpKey + "Type"); /* if(!mType.equals("datasource")){ //System.out.println( "mType=" + mType); return (null); } */ mDataSourcePara.InitContext = cfg.getValue(tmpKey + "InitContext"); mDataSourcePara.ProviderUrl = cfg.getValue(tmpKey + "ProviderUrl"); mDataSourcePara.DataSource = cfg.getValue(tmpKey + "DataSource"); mDataSourcePara.UserName = cfg.getValue(tmpKey + "UserName"); //mDataSourcePara.Password = cfg.getValue(tmpKey+"Password"); mDataSourcePara.Encrypt = new Boolean(cfg.getValue(tmpKey + "Encrypt")). booleanValue(); if (mDataSourcePara.Encrypt) { mDataSourcePara.Password = Decode.decrypt(cfg.getValue(tmpKey + "Password")); } else { mDataSourcePara.Password = cfg.getValue(tmpKey + "Password"); } if (mDataSourcePara.UserName == null || mDataSourcePara.UserName.length() == 0) { mDataSourcePara.UserName = ""; Log.debug(tmpKey + "UserName is null! "); } else { Log.debug(tmpKey + "UserName length is : " + mDataSourcePara.UserName.length()); } /** Get ConvertInDb config **/ String ConvertInDb; String ConvertInDbFrom; String ConvertInDbTo; ConvertInDb = cfg.getValue(tmpKey + "ConvertInDb"); //Log.debug(">>>>ConvertInDb = " + ConvertInDb); if (ConvertInDb == null || ConvertInDb.length() == 0) { ConvertInDbFrom = null; ConvertInDbTo = null; } else { int iD = ConvertInDb.indexOf(","); //Log.debug(">>>>iD =" + iD); if (iD == -1) { ConvertInDbFrom = null; ConvertInDbTo = ConvertInDb; } else if (iD == 0) { ConvertInDbFrom = null; ConvertInDbTo = ConvertInDb.substring(iD + 1); } else { ConvertInDbFrom = ConvertInDb.substring(0, iD); ConvertInDbTo = ConvertInDb.substring(iD + 1); } } mDataSourcePara.ConvertInDbFrom = ConvertInDbFrom; mDataSourcePara.ConvertInDbTo = ConvertInDbTo; /** Get ConvertOutDb config **/ String ConvertOutDb; String ConvertOutDbFrom; String ConvertOutDbTo; ConvertOutDb = cfg.getValue(tmpKey + "ConvertOutDb"); //Log.debug("ConvertOutDb = " + ConvertOutDb); if (ConvertOutDb == null || ConvertOutDb.length() == 0) { ConvertOutDbFrom = null; ConvertOutDbTo = null; } else { int iD = ConvertOutDb.indexOf(","); Log.debug("iD =" + iD); if (iD == -1) { ConvertOutDbFrom = null; ConvertOutDbTo = ConvertOutDb; } else if (iD == 0) { ConvertOutDbFrom = null; ConvertOutDbTo = ConvertOutDb.substring(iD + 1); } else { ConvertOutDbFrom = ConvertOutDb.substring(0, iD); ConvertOutDbTo = ConvertOutDb.substring(iD + 1); } } mDataSourcePara.ConvertOutDbFrom = ConvertOutDbFrom; mDataSourcePara.ConvertOutDbTo = ConvertOutDbTo; Log.debug(tmpKey + "DbKey=" + mDataSourcePara.DbKey); Log.debug(tmpKey + "InitContext=" + mDataSourcePara.InitContext); Log.debug(tmpKey + "ProviderUrl=" + mDataSourcePara.ProviderUrl); Log.debug(tmpKey + "DataSource=" + mDataSourcePara.DataSource); Log.debug(tmpKey + "UserName=" + mDataSourcePara.UserName); Log.debug(tmpKey + "Password=" + mDataSourcePara.Password); Log.debug(tmpKey + "Encrypt=" + mDataSourcePara.Encrypt); Log.debug(tmpKey + "ConvertInDbFrom=" + mDataSourcePara.ConvertInDbFrom); Log.debug(tmpKey + "ConvertInDbTo=" + mDataSourcePara.ConvertInDbTo); Log.debug(tmpKey + "ConvertOutDbFrom=" + mDataSourcePara.ConvertOutDbFrom); Log.debug(tmpKey + "ConvertOutDbTo=" + mDataSourcePara.ConvertOutDbTo); return (mDataSourcePara); } /** *ȡJDBC�����÷�������ȱʡJDBC������ȡ�ö�Ӧ��������Ϣ�� *@return JdbcPara value��Ϊ����Դ���õ�ֵ�� */ public static JdbcPara getJdbcPara() { JdbcPara mJdbcPara = new JdbcPara(); mJdbcPara = DbConfig.getJdbcPara(""); return (mJdbcPara); } /** *ȡJDBC�����÷������Ը�JDBC������ȡ�ö�Ӧ��������Ϣ�� *@param String key��JDBC�ļ����� *@return JdbcPara value��Ϊ����Դ���õ�ֵ�� */ public static JdbcPara getJdbcPara(String key) { JdbcPara mJdbcPara = new JdbcPara(key); //��������ǰ׺ String tmpKey = null; if (key == "") { tmpKey = ""; mJdbcPara.DbKey = "__Default__"; } else { tmpKey = key + "."; mJdbcPara.DbKey = key; } //System.out.println( "tmpKey=" + tmpKey); String mType = cfg.getValue(tmpKey + "Type"); /* if(!mType.equals("jdbc")){ //System.out.println( "mType=" + mType); return (null); } */ mJdbcPara.DbDriver = cfg.getValue(tmpKey + "DbDriver"); mJdbcPara.DbUrl = cfg.getValue(tmpKey + "DbUrl"); mJdbcPara.UserName = cfg.getValue(tmpKey + "UserName"); //mJdbcPara.Password = cfg.getValue(tmpKey+"Password"); mJdbcPara.Encrypt = new Boolean(cfg.getValue(tmpKey + "Encrypt")). booleanValue(); if (mJdbcPara.Encrypt) { mJdbcPara.Password = Decode.decrypt(cfg.getValue(tmpKey + "Passord")); } else { mJdbcPara.Password = cfg.getValue(tmpKey + "Password"); } mJdbcPara.InitPoolSize = new Integer(cfg.getValue(tmpKey + "InitPoolSize")).intValue(); mJdbcPara.MaxPoolSize = new Integer(cfg.getValue(tmpKey + "MaxPoolSize")). intValue(); mJdbcPara.Expired = new Integer(cfg.getValue(tmpKey + "Expired")). intValue(); if (mJdbcPara.UserName == null || mJdbcPara.UserName.length() == 0) { mJdbcPara.UserName = ""; Log.debug(tmpKey + "UserName is null! "); } else { Log.debug(tmpKey + "UserName length is : " + mJdbcPara.UserName.length()); } /** Get ConvertInDb config **/ String ConvertInDb; String ConvertInDbFrom; String ConvertInDbTo; ConvertInDb = cfg.getValue(tmpKey + "ConvertInDb"); if (ConvertInDb == null || ConvertInDb.length() == 0) { ConvertInDbFrom = null; ConvertInDbTo = null; } else { int iD = ConvertInDb.indexOf(","); if (iD == -1) { ConvertInDbFrom = null; ConvertInDbTo = ConvertInDb; } else if (iD == 0) { ConvertInDbFrom = null; ConvertInDbTo = ConvertInDb.substring(iD + 1); } else { ConvertInDbFrom = ConvertInDb.substring(0, iD); ConvertInDbTo = ConvertInDb.substring(iD + 1); } } mJdbcPara.ConvertInDbFrom = ConvertInDbFrom; mJdbcPara.ConvertInDbTo = ConvertInDbTo; /** Get ConvertOutDb config **/ String ConvertOutDb; String ConvertOutDbFrom; String ConvertOutDbTo; ConvertOutDb = cfg.getValue(tmpKey + "ConvertOutDb"); if (ConvertOutDb == null || ConvertOutDb.length() == 0) { ConvertOutDbFrom = null; ConvertOutDbTo = null; } else { int iD = ConvertOutDb.indexOf(","); if (iD == -1) { ConvertOutDbFrom = null; ConvertOutDbTo = ConvertOutDb; } else if (iD == 0) { ConvertOutDbFrom = null; ConvertOutDbTo = ConvertOutDb.substring(iD + 1); } else { ConvertOutDbFrom = ConvertOutDb.substring(0, iD); ConvertOutDbTo = ConvertOutDb.substring(iD + 1); } } mJdbcPara.ConvertOutDbFrom = ConvertOutDbFrom; mJdbcPara.ConvertOutDbTo = ConvertOutDbTo; Log.debug(tmpKey + "DbKey=" + mJdbcPara.DbKey); Log.debug(tmpKey + "DbDriver=" + mJdbcPara.DbDriver); Log.debug(tmpKey + "DbUrl=" + mJdbcPara.DbUrl); Log.debug(tmpKey + "UserName=" + mJdbcPara.UserName); Log.debug(tmpKey + "Password=" + mJdbcPara.Password); Log.debug(tmpKey + "Encrypt=" + mJdbcPara.Encrypt); Log.debug(tmpKey + "InitPoolSize=" + mJdbcPara.InitPoolSize); Log.debug(tmpKey + "MaxPoolSize=" + mJdbcPara.MaxPoolSize); Log.debug(tmpKey + "Expired=" + mJdbcPara.Expired); Log.debug(tmpKey + "ConvertInDbFrom=" + mJdbcPara.ConvertInDbFrom); Log.debug(tmpKey + "ConvertInDbTo=" + mJdbcPara.ConvertInDbTo); Log.debug(tmpKey + "ConvertOutDbFrom=" + mJdbcPara.ConvertOutDbFrom); Log.debug(tmpKey + "ConvertOutDbTo=" + mJdbcPara.ConvertOutDbTo); return (mJdbcPara); } public static void main(java.lang.String[] args) { String key; DataSourcePara mDataSourcePara; JdbcPara mJdbcPara; Object oPara; /* mDataSourcePara = DbConfig.getDataSourcePara(); if(mDataSourcePara == null){ mJdbcPara = DbConfig.getJdbcPara(); } mDataSourcePara = DbConfig.getDataSourcePara("Test1"); if(mDataSourcePara == null){ mJdbcPara = DbConfig.getJdbcPara("Test1"); } */ oPara = DbConfig.getPara(); if (oPara instanceof DataSourcePara) { Log.debug("oPara is DataSourcePara"); } if (oPara instanceof JdbcPara) { Log.debug("oPara is JdbcPara"); } oPara = DbConfig.getPara("Test1"); if (oPara instanceof DataSourcePara) { Log.debug("oPara is DataSourcePara"); } if (oPara instanceof JdbcPara) { Log.debug("oPara is JdbcPara"); } } }