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

📄 connfactory.java~2~

📁 c++通信编程学习1
💻 JAVA~2~
字号:
package com.j2ee.database;
import java.sql.*;
import javax.sql.*;
import javax.naming.Context;
import javax.naming.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company:天津城市建设学院计算机系 </p>
 * 包名:com.tjuci.app.database
 * 类名:ConnFactory
 * 功能:提供ODBC桥、静态、数据源、连接池等数据库连接方式
 * 数据库连接工厂,用于将连接池绑定到一个具体的名称上以及取消绑定操作。
 * 该类用来保存多个数据源名称,以及数据库连接池对应的哈希表,完成不同数据库访问。
 * 通过名称就可以获取指定的连接池对象。
 * 通过dbConnTag标记指示数据库连接方式,并提供标记设置
 */
public class ConnFactory {
    ConnFactoryPara connFactory = new ConnFactoryPara(); //参数变量类

    public ConnFactory() {
    }

    //是否是odbc-jdbc连接方式
    public boolean isODBCJDBCConn() {
        if (connFactory.dbConnTag == 0) //若为odbc连接,即返回
            return true;
        else
            return false;
    }

    //是不是dirvermanage方式的静态访问数据库
    public boolean isDriverManageConn() throws ClassNotFoundException {
        if (connFactory.dbConnTag == 1) //若为静态连接,即返回
            return true;
        boolean returnValue = false;
        try {
            Class.forName(connFactory.driver.toString()); //数据库驱动
            returnValue = true;
            return returnValue;
        } catch (ClassNotFoundException ex) { //没有找到数据库驱动类
            return returnValue;
        }
    }

    //是否为数据源连接方式
    public boolean isDataSourceConn() {
        if (connFactory.dbConnTag == 2) { //若为数据源连接,即返回
            return true;
        }
        return false;
    }

    //通过ODBC桥进行数据库连接
    public Connection getODBCJDBCConn() {
        Connection conn = null;
        return conn;
    }


    /**
     * 静态的drivermanage的方式进行数据库连接
     *
     * @return Connection
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public Connection getDriverManageConn() throws ClassNotFoundException,
            SQLException {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection
                              (connFactory.url, connFactory.user,
                               connFactory.pwd); //数据库驱动连接
            return conn;
        } catch (SQLException ex) {
            //日志处理
            return null;
        } catch (ClassNotFoundException ex1) {
            //日志处理
            return null;
        }
    }


    /**
     * 数据源方式获取数据库连接,数据源由服务器定义
     *
     * @return Connection
     * @throws SQLException
     * @throws NamingException
     */
    public Connection getDataSourceConn() throws SQLException, NamingException {
        Connection conn = null;
        try {
            Context initCtx = new InitialContext();
            Context ctx = (Context) initCtx.lookup("java:comp/env");
            DataSource ds = (DataSource) ctx.lookup("jdbc/pcbdb"); //connFactory.dataSourceName);
            if (connFactory.user.equals(null)) { //没有定义用户名和密码,无需输入,在服务器配置中已经完成
                conn = ds.getConnection();
            } else {
                conn = ds.getConnection(connFactory.user,
                                        connFactory.pwd);
            }
            return conn;
        } catch (SQLException ex) {
            //---------------------写入日志-------------------//
            return null;
        } catch (NamingException ex) {
            //------------------写入日志-----------------------//
            return null;
        }
    }

    //获取数据连接池的数据库连接方式,
    //--------------------后续工作--------------------//
    public Connection getDataPoolConn() {
        Connection conn = null;
        return conn;
    }

    //根据需要,可以设置连接方式
    public void setDBConnTag(int dbConnTag) {
        connFactory.dbConnTag = dbConnTag;
        //--------------操作需要写入日志-----------------------//
    }

    //数据库恢复初始状态设置,
    //-----------------前几个参数需要再调整-------------------------//
    public void setSystemDefalut() {
        connFactory.driver = "com.mysql.jdbc.Driver";
        connFactory.url = "jdbc:mysql://localhost:3306/j2ee";
        connFactory.user = "root";
        connFactory.pwd = "886891";
        connFactory.minConnection = 0;
        connFactory.maxConnection = 50;
        connFactory.timeoutValue = 600000;
        connFactory.waitTime = 30000;
        connFactory.dbConnTag = 1;

    }
}

⌨️ 快捷键说明

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