zoukankan      html  css  js  c++  java
  • 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));
        }
  • 相关阅读:
    Linux启动报错missing operating system
    Linux tmp目录自动清理总结
    ORACLE口令管理
    oom_kill_process造成数据库挂起并出现found dead shared server
    Oracle shutdown immediate遭遇ORA-24324 ORA-24323 ORA-01089
    从flink-example分析flink组件(1)WordCount batch实战及源码分析
    从mysql高可用架构看高可用架构设计
    由mysql分区想到的分表分库的方案
    六边形效果
    迷你MVVM框架 avalonjs1.5.2 发布
  • 原文地址:https://www.cnblogs.com/zno2/p/4566400.html
Copyright © 2011-2022 走看看