172 * 173 * @param props 屬性 174 */ 175 private void loadDrivers(Properties props) { 176 String driverClasses = props.getProperty("drivers"); 177 StringTokenizer st = new StringTokenizer(driverClasses); 178 while (st.hasMoreElements()) { 179 String driverClassName = st.nextToken().trim(); 180 try { 181 Driver driver = (Driver) 182 Class.forName(driverClassName).newInstance(); 183 DriverManager.registerDr iver(driver); 184 drivers.addElement(driver); 185 log("成功注冊JDBC驅(qū)動程序\\\" + driverClassName); 186 } 187 catch (Exception e) { 188 log("無法注冊JDBC驅(qū)動程序: " + 189 driverClassName + ", 錯誤: " + e); 190 } 191 } 192 } 193 194 /** 195 * 將文本信息寫入日志文件 196 */ 197 private void log(String msg) { 198 log.println(new Date() + ": " + msg); 199 } 200 201 /** 202 * 將文本信息與異常寫入日志文件 203 */ 204 private void log(Throwable e, String msg) { 205 log.println(new Date() + ": " + msg); 206 e.printStackTrace(log); 207 } 208 209 /** 210 * 此內(nèi)部類定義了一個連接池.它能夠根據(jù)要求創(chuàng)建新連接,直到預(yù)定的最\\r
? |