⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbcmanager.java

📁 基于JAVA的一个注册系统 最初只是为了公司做演示使用
💻 JAVA
字号:
package net.yefei.cmn.db;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import java.util.*;
import java.util.logging.Logger;
import java.util.logging.Level;
/*
* @author ye fei
* @version 1.00, 2003/04/15
* @copyright www.studyjava.com
*/

import org.apache.struts.digester.*;

public class JDBCManager implements JDBCManagerIF {


	private final static String DATABASE_KEY = "database.define.file";
	private Hashtable dataS = new Hashtable();
	private static Vector bs = new Vector();
	public static void addDataSourceBean(DataSourceBean b){
		bs.add(b);
	}
	public JDBCManager(){
	}

	public synchronized void setup(File f) throws Exception{
		setup(f, false);
	}
	synchronized void setup(File f, boolean noPrePool) throws Exception{
		if(noPrePool)
			setup(f, 0);
		else
			setup(f, -1);
	}
	synchronized void setup(File f, int min) throws Exception{
		Digester digester = new Digester();
		digester.push(this);
        //digester.setDebug(0xffff);
        digester.setValidating(false);

        //It's an important instruction that it can binding the two obj
        //and excute the instrution through the parma.
		digester.addObjectCreate("database/data-source",
                           "net.yefei.cmn.db.DataSourceBean");

  		digester.addCallMethod("database/data-source/name", "setName", 0);
  		digester.addCallMethod("database/data-source/class-name", "setClassName", 0);
  		digester.addCallMethod("database/data-source/driver-class", "setDriverClass", 0);
  		digester.addCallMethod("database/data-source/db-url", "setDbUrl", 0);
  		digester.addCallMethod("database/data-source/db-user", "setDbUser", 0);
  		digester.addCallMethod("database/data-source/db-password", "setDbPassword", 0);
  		digester.addCallMethod("database/data-source/auto-commit", "setAutoCommit", 0);
  		digester.addCallMethod("database/data-source/max-count", "setMaxCount", 0);
  		digester.addCallMethod("database/data-source/min-count", "setMinCount", 0);
  		digester.addCallMethod("database/data-source/ping-command", "setPingCommand", 0);
  		digester.addCallMethod("database/data-source/ping-query", "setPingQuery", 0);
  		digester.addCallMethod("database/data-source/read-only", "setReadOnly", 0);
  		digester.addCallMethod("database/data-source/login-timeout", "setLoginTimeout", 0);
  		digester.addCallMethod("database/data-source/debug", "setDebug", 0);
  		FileInputStream inp = new FileInputStream(f);
        Object root = digester.parse(inp);
        //System.out.println("root=" + root.getClass().getName());
        inp.close();

		DataSourceBean dsb;
		Enumeration en = bs.elements();
		for(; en.hasMoreElements();){
			dsb = (DataSourceBean)en.nextElement();
			//System.out.println("" + dsb);
			if(min != -1){
				//dsb.setMaxCount("1");
				dsb.setMinCount("" + min);
			}
			setupDataSource(dsb);
		}
		digester.clear();

	}
	private void setupDataSource(DataSourceBean b){
		DbDataSource ds = null;
		try{
			ds = (DbDataSource)Class.forName(b.getClassName()).newInstance();
			ds.init(b);
			dataS.put(b.getName(),ds);

		}catch(Exception e){
                  // System.out.println("Cant find StrutsDataSource in the database.xml");
		}
	}
	public synchronized DbDataSource lookupDataSource(){
		return (DbDataSource)dataS.get("default");
	}
	public synchronized DbDataSource lookupDataSource(String name){
		return (DbDataSource)dataS.get(name);
	}
	//public ConnectionPoolDataSource lookupConnectionPoolDataSource(String name){
	//	return null;
	//}
	public Connection getConnection() throws SQLException,NoConnectionException{
		return getConnection("default");
	}
	public Connection getConnection(String name) throws SQLException,NoConnectionException{
		DataSource ds = (DataSource)dataS.get(name);
		if(ds == null)
			throw new NoConnectionException(name);
		return ds.getConnection();
	}
	public synchronized void destroy(){
		Enumeration e = dataS.elements();
		for(; e.hasMoreElements() ;){
			DbDataSource ds = (DbDataSource)e.nextElement();
			ds.destroy();
		}
		dataS.clear();
	}
	public int getMaxCount(){
		return getMaxCount("default");
	}
	public int getMaxCount(String name){
		DbDataSource ds = lookupDataSource(name);
		if(ds == null)
			return -1;
		else
			return ds.getMaxCount();
	}
	public int getMinCount(){
		return getMinCount("default");
	}
	public int getMinCount(String name){
		DbDataSource ds = lookupDataSource(name);
		if(ds == null)
			return -1;
		else
			return ds.getMinCount();
	}
	public boolean getAutoCommit(){
		return getAutoCommit();
	}
	public boolean getAutoCommit(String name){
		DbDataSource ds = lookupDataSource(name);
		if(ds == null)
			return false;
		else
			return ds.getAutoCommit();
	}
	public int getCashedConnetionCount(){
		return getCashedConnetionCount("default");
	}
	public int getCashedConnetionCount(String name){
		DbDataSource ds = lookupDataSource(name);
		if(ds == null)
			return -1;
		else
			return ds.getCashedConnetionCount();
	}
	public static void main(String[] argv){
		JDBCManager	dbx = new JDBCManager();
		try{
			dbx.setup(new File("database.xml"));
			dbx.getConnection();
                        System.out.println("Database connected successfully");
			//dbx.getConnection("s1");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -