zoukankan      html  css  js  c++  java
  • Druid 数据库连接池技术(JDBCUtils工具类的编写) 学习笔记

    Druid:数据库连接池实现技术,由阿里巴巴提供的:
       1. 步骤:
          1. 导入jar包 druid-1.0.9.jar
          2. 定义配置文件:
             * 是properties形式的
             * 可以叫任意名称,可以放在任意目录下
          3. 加载配置文件。Properties
          4. 获取数据库连接池对象:通过工厂来来获取  DruidDataSourceFactory
          5. 获取连接:getConnection

    * 代码:(核心代码,不直接使用)
    
         
           //加载配置文件
           Properties pro = new Properties();
           InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
           pro.load(is);
           //获取连接池对象
           DataSource ds = DruidDataSourceFactory.createDataSource(pro);
           //获取连接
           Connection conn = ds.getConnection();
    
    2. 定义工具类
       1. 定义一个类 JDBCUtils
       2. 提供静态代码块加载配置文件,初始化连接池对象
       3. 提供方法
          1. 获取连接方法:通过数据库连接池获取连接
          2. 释放资源
          3. 获取连接池的方法

     

    JDBC工具类代码(直接拿去用,用作JDBCUtils):

    import com.alibaba.druid.pool.DruidDataSourceFactory;
    
    import javax.sql.DataSource;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    /**
     * Druid连接池的工具类
     */
    public class JDBCUtils {
    
        //1.定义成员变量 DataSource
        private static DataSource ds ;
    
        static{
            try {
                //1.加载配置文件
                Properties pro = new Properties();
                pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
                //2.获取DataSource
                ds = DruidDataSourceFactory.createDataSource(pro);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 获取连接
         */
        public static Connection getConnection() throws SQLException {
            return ds.getConnection();
        }
    
        /**
         * 释放资源
         */
        public static void close(Statement stmt,Connection conn){
           /* if(stmt != null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            if(conn != null){
                try {
                    conn.close();//归还连接
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }*/
    
           close(null,stmt,conn);
        }
    
    
        public static void close(ResultSet rs , Statement stmt, Connection conn){
    
    
            if(rs != null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
    
            if(stmt != null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            if(conn != null){
                try {
                    conn.close();//归还连接
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * 获取连接池方法
         */
    
        public static DataSource getDataSource(){
            return  ds;
        }
    
    }

    配置文件(druid.properties):要进行修改和配置。

    使用方法:在src文件夹下创建一个文件,名为 " druid.properties ",根据需要将里面的一些配置进行修改。

    driverClassName=com.mysql.jdbc.Driver
    
    #jdbc_exercise是我创建的数据库的名字,可根据自己的实际创建进行修改
    url=jdbc:mysql://127.0.0.1:3306/jdbc_exercise
    username=root
    password=123
    
    #初始化连接数
    initialSize=5
    
    # 最大连接数
    maxActive=10
    
    #最大等待时间
    maxWait=3000
  • 相关阅读:
    POJ 1548 Robots(最小路径覆盖)
    <html>
    站点开发-日志-1
    JSP入门实战下
    rancher官方资源
    window10死机
    window10桌面图标空白
    sentry使用docker-compose部署
    docker下一步步部署sentry
    docker-compose编排服务
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451031.html
Copyright © 2011-2022 走看看