• getConnection 区别


     1. 这是一个接口

    package javax.sql;

    DataSource.class

    /**
       * <p>Attempts to establish a connection with the data source that
       * this <code>DataSource</code> object represents.
       *
       * @return  a connection to the data source
       * @exception SQLException if a database access error occurs
       */
      Connection getConnection() throws SQLException;

     2.这是一个dbcp实现类,返回由连接池管理的连接。

    package org.apache.commons.dbcp2;

    BasicDataSource.class

    /**
         * Create (if necessary) and return a connection to the database.
         *
         * @throws SQLException if a database access error occurs
         * @return a database connection
         */
        @Override
        public Connection getConnection() throws SQLException {
            if (Utils.IS_SECURITY_ENABLED) {
                PrivilegedExceptionAction<Connection> action = new PaGetConnection();
                try {
                    return AccessController.doPrivileged(action);
                } catch (PrivilegedActionException e) {
                    Throwable cause = e.getCause();
                    if (cause instanceof SQLException) {
                        throw (SQLException) cause;
                    }
                    throw new SQLException(e);
                }
            }
            return createDataSource().getConnection();
        }

     3. 创建连接并返回

    package java.sql;

    DriverManager.class

    /**
         * Attempts to establish a connection to the given database URL.
         * The <code>DriverManager</code> attempts to select an appropriate driver from
         * the set of registered JDBC drivers.
         *
         * @param url a database url of the form
         * <code>jdbc:<em>subprotocol</em>:<em>subname</em></code>
         * @param user the database user on whose behalf the connection is being
         *   made
         * @param password the user's password
         * @return a connection to the URL
         * @exception SQLException if a database access error occurs
         */
        public static Connection getConnection(String url,
            String user, String password) throws SQLException {
            java.util.Properties info = new java.util.Properties();
    
            // Gets the classloader of the code that called this method, may
            // be null.
            ClassLoader callerCL = DriverManager.getCallerClassLoader();
    
            if (user != null) {
                info.put("user", user);
            }
            if (password != null) {
                info.put("password", password);
            }
    
            return (getConnection(url, info, callerCL));
        }
  • 相关阅读:
    JavaScript判断字符串的字符长度(中文占两个字符)
    MessageQueue 一 简单的创建和读取
    HttpWebResponse返回信息
    IDEA 快捷操作 Windows
    不带头结点的单链表的创建、插入、删除。
    二叉树的深度
    【Python爬虫实战】pywin32 安装后出现 import win32api ImportError DLL load failed
    【Python爬虫实战】Scrapy框架的安装 搬运工亲测有效
    【Python爬虫实战】多线程爬虫---糗事百科段子爬取
    【Python爬虫实战】微信爬虫
  • 原文地址:https://www.cnblogs.com/zno2/p/4566400.html
Copyright © 2020-2023  润新知