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

📄 dbconnection.java

📁 用来为垂直搜索引擎抓取数据的采集系统
💻 JAVA
字号:
/*
 * Created by xuehao at Nov 29, 2005
 */
package org.indigo.db;

import java.sql.*;
import java.sql.SQLException;

import org.indigo.log.FileLoggerError;
import org.indigo.util.*;
/**
 * 用于完成数据库连接的类。
 * 通过在配置文件中配置参数可以完成mysql,和sql和Oracle的连接。
 * 同时本类中还提供了一些对数据库操作的方法如插入,选择,删除等。
 * @author wbz
 *
 */
public class DBConnection
{
    private static DBConnection itsInstance=new DBConnection();
    
    private String itsJDBCDriver=null;
    private String itsJDBCUrl=null;
    private Connection itsRealConn = null;
    /**
     * 构造函数,获取数据库配置信息。
     * 
     *
     */
    private DBConnection()
    {
        String host,port,database,user,password,str;
        boolean bMySql = true;
        str = DBConfig.getInstance().getProperty( "db" ).trim();
        bMySql = str.equalsIgnoreCase( "mysql" );
        
        host = DBConfig.getInstance().getProperty( "host" ).trim();
        port = DBConfig.getInstance().getProperty( "port" ).trim();
        database = DBConfig.getInstance().getProperty( "database" ).trim();
        user = DBConfig.getInstance().getProperty( "user" ).trim();
        password = DBConfig.getInstance().getProperty( "password" ).trim();
        
        if( !bMySql )
        {
	        itsJDBCUrl  ="jdbc:microsoft:sqlserver://";
	        itsJDBCUrl += host + ":";
	        itsJDBCUrl += port + ";";
	        itsJDBCUrl += "databaseName=" + database + ";";
	        itsJDBCUrl += "selectMethod=cursor;";
	        itsJDBCUrl += "User=" + user + ";Password=" + password + ";";
	        itsJDBCUrl += "useUnicode=true&characterEncoding=gbk;";
	        
	        itsJDBCDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
        }else
        {
            
            itsJDBCUrl  = "jdbc:mysql://";
            itsJDBCUrl += host + ":";
            itsJDBCUrl += port + "/";
            itsJDBCUrl += database + "?";
            itsJDBCUrl += "user=" + user + "&password=" + password + "&";
            itsJDBCUrl += "useUnicode=true&characterEncoding=gbk";
            
            itsJDBCDriver = "com.mysql.jdbc.Driver";
        }
//        System.out.println( itsJDBCDriver );
//        System.out.println( itsJDBCUrl );
        try
        {
            Class.forName( itsJDBCDriver );
        } catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }
    public static DBConnection getInstance()
    {
        return itsInstance;
    }
    /**
     * 执行查询操作。
     * @param sql  sql语句。
     * @return
     */
    public ResultSet executeQuery( String sql )
    {
        ResultSet rs=null;
        Statement stmt = null;
        try
        {
            if( itsRealConn==null || itsRealConn.isClosed() )
            {
                itsRealConn = DriverManager.getConnection( itsJDBCUrl );
            }
            stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
            rs = stmt.executeQuery( sql );
        } catch (SQLException e)
        {
            e.printStackTrace();
        }

        return rs;
    }
    /**
     * 执行插入操作。
     * @param sql sql语句
     */
    public void executeInsert( String sql )
    {
        Statement stmt = null;
        try
        {
            if( itsRealConn==null || itsRealConn.isClosed() )
            {
                itsRealConn = DriverManager.getConnection( itsJDBCUrl );
            }
            stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
            stmt.execute( sql );
        } catch (SQLException e)
        {
            FileLoggerError.getInstance().warning( sql );
            FileLoggerError.getInstance().warning( e.getMessage() );
            e.printStackTrace();
        }
        try
        {
            if( stmt!=null )
            {
                stmt.close();
                stmt = null;
            }
/*            if( conn!=null )
            {
                conn.close();
                conn = null;
            }
*/            
        } catch (SQLException e1)
        {
            e1.printStackTrace();
        }
    }
    /**
     * 执行更新操作。
     * @param sql sql语句
     */
    public void executeUpdate( String sql )
    {
        Statement stmt = null;
        try
        {
            if( itsRealConn==null || itsRealConn.isClosed() )
            {
                itsRealConn = DriverManager.getConnection( itsJDBCUrl );
            }
            stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
            stmt.executeUpdate( sql );
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        try
        {
            if( stmt!=null )
            {
                stmt.close();
                stmt = null;
            }
/*            
            if( conn!=null )
            {
                conn.close();
                conn = null;
            }
*/            
        } catch (SQLException e1)
        {
            e1.printStackTrace();
        }
    }
    /**
     * 执行删除操作。
     * @param sql
     * @return
     */
    public boolean executeDelete( String sql )
    {
        boolean flag=false;
        Statement stmt = null;
        try
        {
            if( itsRealConn==null || itsRealConn.isClosed() )
            {
                itsRealConn = DriverManager.getConnection( itsJDBCUrl );
            }
            stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
            flag = stmt.execute( sql );
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        try
        {
            if( stmt!=null )
            {
                stmt.close();
                stmt = null;
            }
/*            
            if( conn!=null )
            {
                conn.close();
                conn = null;
            }
*/            
        } catch (SQLException e1)
        {
            e1.printStackTrace();
        }
        return flag;
    }
    /**
     * 关闭数据库连接。
     *
     */
    public void close()
    {
        if( itsRealConn==null )
            return;
        try
        {
            if( itsRealConn.isClosed() )
                return;
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        try
        {
            itsRealConn.close();
        } catch (SQLException e1)
        {
            e1.printStackTrace();
        }finally
        {
            itsRealConn = null;
        }
    }
}

⌨️ 快捷键说明

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