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

📄 connectionfactory.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
字号:
/* * $Id: ConnectionFactory.java 6609 2006-01-29 09:50:01Z jonesde $ * * Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */package org.ofbiz.entity.jdbc;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;import org.w3c.dom.Element;import org.ofbiz.base.util.Debug;import org.ofbiz.entity.GenericEntityException;import org.ofbiz.entity.transaction.MinervaConnectionFactory;import org.ofbiz.entity.transaction.TransactionFactory;/** * ConnectionFactory - central source for JDBC connections * * @author     <a href="mailto:jonesde@ofbiz.org">David E. Jones</a> * @author     <a href="mailto:jaz@ofbiz.org">Andy Zeneski</a> * @version    $Rev: 6609 $ * @since      2.0 */public class ConnectionFactory {    // Debug module name    public static final String module = ConnectionFactory.class.getName();    public static Connection getConnection(String driverName, String connectionUrl, Properties props, String userName, String password) throws SQLException {        // first register the JDBC driver with the DriverManager        if (driverName != null) {            ConnectionFactory.loadDriver(driverName);        }        try {            if (userName != null && userName.length() > 0)                return DriverManager.getConnection(connectionUrl, userName, password);            else if (props != null)                return DriverManager.getConnection(connectionUrl, props);            else                return DriverManager.getConnection(connectionUrl);        } catch (SQLException e) {            Debug.logError(e, "SQL Error obtaining JDBC connection", module);            throw e;        }    }    public static Connection getConnection(String connectionUrl, String userName, String password) throws SQLException {        return getConnection(null, connectionUrl, null, userName, password);    }    public static Connection getConnection(String connectionUrl, Properties props) throws SQLException {        return getConnection(null, connectionUrl, props, null, null);    }    public static Connection getConnection(String helperName) throws SQLException, GenericEntityException {        // Debug.logVerbose("Getting a connection", module);        Connection con = TransactionFactory.getConnection(helperName);        if (con == null) {            Debug.logError("******* ERROR: No database connection found for helperName \"" + helperName + "\"", module);        }        return con;    }        public static Connection tryGenericConnectionSources(String helperName, Element inlineJdbcElement) throws SQLException, GenericEntityException {        // Minerva Based        try {            Connection con = MinervaConnectionFactory.getConnection(helperName, inlineJdbcElement);            if (con != null) return con;        } catch (Exception ex) {            Debug.logError(ex, "There was an error getting a Minerva datasource.", module);        }        /* DEJ20040103 XAPool still seems to have some serious issues and isn't working right, of course we may not be using it right, but I don't really feel like trying to track it down now        // XAPool & JOTM Based        try {            Connection con = XaPoolConnectionFactory.getConnection(helperName, inlineJdbcElement);            if (con != null) return con;        } catch (Exception ex) {            Debug.logError(ex, "There was an error getting a Minerva datasource.", module);        }        */        /* DEJ20050103 This pretty much never works anyway, so leaving out to reduce error messages when things go bad        // next try DBCP        try {            Connection con = DBCPConnectionFactory.getConnection(helperName, inlineJdbcElement);            if (con != null) return con;        } catch (Exception ex) {            Debug.logError(ex, "There was an error getting a DBCP datasource.", module);        }                // Default to plain JDBC.        String driverClassName = inlineJdbcElement.getAttribute("jdbc-driver");        if (driverClassName != null && driverClassName.length() > 0) {            try {                ClassLoader loader = Thread.currentThread().getContextClassLoader();                Class clazz = loader.loadClass(driverClassName);                clazz.newInstance();            } catch (ClassNotFoundException e) {                Debug.logWarning(e, "Could not find JDBC driver class named " + driverClassName, module);                return null;            } catch (java.lang.IllegalAccessException e) {                Debug.logWarning(e, "Not allowed to access JDBC driver class named " + driverClassName, module);                return null;            } catch (java.lang.InstantiationException e) {                Debug.logWarning(e, "Could not create new instance of JDBC driver class named " + driverClassName, module);                return null;            }            return DriverManager.getConnection(inlineJdbcElement.getAttribute("jdbc-uri"),                    inlineJdbcElement.getAttribute("jdbc-username"), inlineJdbcElement.getAttribute("jdbc-password"));        }        */        return null;    }    public static void loadDriver(String driverName) throws SQLException {        if (DriverManager.getDriver(driverName) == null) {            try {                Driver driver = (Driver) Class.forName(driverName, true, Thread.currentThread().getContextClassLoader()).newInstance();                DriverManager.registerDriver(driver);            } catch (ClassNotFoundException e) {                Debug.logWarning(e, "Unable to load driver [" + driverName + "]", module);            } catch (InstantiationException e) {                Debug.logWarning(e, "Unable to instantiate driver [" + driverName + "]", module);            } catch (IllegalAccessException e) {                Debug.logWarning(e, "Illegal access exception [" + driverName + "]", module);            }        }    }    public static void unloadDriver(String driverName) throws SQLException {        Driver driver = DriverManager.getDriver(driverName);        if (driver != null) {            DriverManager.deregisterDriver(driver);        }    }}

⌨️ 快捷键说明

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