打印本文 打印本文 关闭窗口 关闭窗口
java连接sqlserver实例
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2513  更新时间:2007/11/14 12:56:27  文章录入:mintao  责任编辑:mintao
is * created. If the max number has been reached, waits until one * is available or the specified time has elapsed. * * @param name The pool name as defined in the properties file * @param time The number of milliseconds to wait * @return Connection The connection or null */ public Connection getConnection(String name, long time) throws SQLException { DBConnectionPool pool = (DBConnectionPool) pools.get(name); if (pool != null) { return pool.getConnection(time); } return null; } /** * Returns the single instance, creating one if it''''s the * first time this method is called. * * @return DBConnectionManager The single instance. */ static synchronized public DBConnectionManager getInstance() { if (instance == null) { instance = new DBConnectionManager(); } clients++; return instance; } /** * Loads properties and initializes the instance with its values. */ private void init() { InputStream is = getClass().getResourceAsStream("/db.properties"); Properties dbProps = new Properties(); try { dbProps.load(is); } catch (Exception e) { System.err.println("Can''''t read the properties file. " + "Make sure db.properties is in the CLASSPATH"); return; } String logFile = dbProps.getProperty("logfile", "DBConnectionManager.log"); try { log = new PrintWriter(new FileWriter(logFile, true), true); } catch (IOException e) { System.err.println("Can''''t open the log file: " + logFile); log = new PrintWriter(System.err); } loadDrivers(dbProps); createPools(dbProps); } /** * Loads and registers all JDBC drivers. This is done by the * DBConnectionManager, as opposed to the DBConnectionPool, * since many pools may share the same driver. * * @param props The connection pool properties */ private void loadDrivers(Properties props) { String driverClasses = props.getProperty("drivers"); StringTokenizer st = new StringTokenizer(driverClasses); while (st.hasMoreElements()) { String driverClassName = st.nextToken().trim(); try { Driver driver = (Driver) Class.forName(driverClassName).newInstance(); DriverManager.registerDriver(driver); drivers.addElement(driver); log("Registered JDBC driver " + driverClassName); } catch (Exception e) { log("Can''''t register JDBC driver: " + driverClassName + ", Exception: " + e); } } } /** * Writes a message to the log file. */ private void log(String msg) { log.println(new Date() + ": " + msg); } /** * Writes a message with an Exception to the log file. */ private void log(Throwable e, String msg) { log.println(new Date() + ": " + msg); e.printStackTrace(log); } /** * Closes all open connections and deregisters all drivers. */ public synchronized void release() { // Wait until called by the last client if (--clients != 0) { return; } Enumeration allPools = pools.elements(); while (allPools.hasMoreElements()) { DBConnectionPool pool = (DBConnectionPool) allPools.nextElement(); pool.release(); } Enumeration allDrivers = drivers.elements(); while (allDrivers.hasMoreElements()) { Driver driver = (Driver) allDrivers.nextElement(); try { DriverManager.deregisterDriver(driver); log("Deregistered JDBC driver " + driver.getClass().getName()); } catch (SQLException e) { log(e, "Can''''t deregister JDBC driver: " + driver.getClass().getName()); } } } /** * release all resources when this object is destroyed. */ public void finalize() { release(); }}

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口