`
jxqc_job
  • 浏览: 529 次
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
java连接sql server数据库 java连接sql server数据库
/*
 * date created 2005-5-19
 */

package common.db;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
import java.util.Vector;

import org.apache.log4j.Logger;


/**
 * @author Fred
 */
public class ConnManager
{
    static Logger logger = Logger.getLogger(ConnManager.class);

    //define datasourse name
    //private static String strDataSourceName = "jdbc/DMDBDataSource";
    static private ConnManager instance; // 唯一实例

    static private int clients = 0;

    private Vector drivers = new Vector();

    private PrintWriter log;

    private Hashtable pools = new Hashtable();

    /**
     * 返回唯一实例.如果是第一次调用此方法,则创建实例
     * 
     * @return ConnManager 唯一实例
     */
    static synchronized public ConnManager getInstance()
    {

        if(instance == null)
        {
            instance = new ConnManager();
            clients++;
        }
        
        return instance;
    }

    /**
     * 建构函数私有以防止其它对象创建本类实例
     */
    public ConnManager()
    {
    }

    /**
     * 
     * @param name
     *            在属性文件中定义的连接池名字
     * @return Connection 可用连接或null
     */
    public Connection getConn(String dbName)
    {
    	Connection conn=null;
    	
    	try
		{
    		conn= DBPool.getPool(dbName).getConnection();
    		
    		//System.out.println("+++Get connection from "+dbName+" successfully!+++");
    		
    		logger.error("+++Get connection from "+dbName+" successfully!+++");
		}
    	catch(Exception e)
		{
    		//System.out.println("***Get connection from "+dbName+" error!***");
    		
    		logger.error("Get connection from the database of "+dbName+" error:\n"+ e.getMessage());
    		
    		e.printStackTrace();
		}
    	
        return conn;
    }

    public Connection getConnForTest(String dbName)
    {
        Connection conn = null;

        try
        {
            Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
            String url ="jdbc:jtds:sqlserver://10.23.18.43:1433;DatabaseName="+dbName+";SelectMethod=Cursor";
            String user = "sa";
            String password = "dmdbtool";
            conn = DriverManager.getConnection(url, user, password);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        
        return conn;
    }

    /*
     * create a connection
     */
    
    /*
    
    public Connection getConn() throws ExceptionInterface
    {

        Connection conn = null;

        try
        {
            conn = getConnection("infomodel");

            //Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
            //String url =
            // "jdbc:microsoft:sqlserver://CN1D13CC:1433;DatabaseName=DMDB";
            //String user = "sa";
            //String password = "dmdbtool";
            //conn = DriverManager.getConnection(url, user, password);
            //String name = "sun.jdbc.odbc.JdbcOdbcDriver";//
            // com.ms.jdbc.odbc.JdbcOdbcDriver
            //  Class.forName(name);
            //  name = "jdbc:odbc:DMDB";
            //  conn = DriverManager.getConnection(name);

        }
        catch(Exception e)
        {
            throw new ExceptionInterface("database connention is failed:\n"
                    + e.getMessage());
        }
        return conn;
    }
*/

    /*
     * free a connection stmt: conn: a database connection
     */
    public void freeConn(Statement stmt, Connection conn,String dbName)
    {
        try
        {
            if(stmt != null)
            {
                stmt.close();
            }
        }
        catch(Exception e)
        {
            logger.error("close Statement is failed:\n"
                    + e.getMessage());
            
            e.printStackTrace();
        }

        try
        {
        	if(conn!=null)
        	{
        		conn.close();
        		logger.error("---Put connection to pool of "+dbName+" ---");
        	}
            //System.out.println("---Put connection to pool of "+dbName+" ---");
        }
        catch(Exception e)
        {
            logger.error(
                    "close database connention is failed:\n" + e.getMessage());
            
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws Exception
    {
    	new ConnManager();
    }
}
Global site tag (gtag.js) - Google Analytics