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

📄 connfactory.java~1~

📁 c++通信编程学习1
💻 JAVA~1~
字号:
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 + -