使用Alibaba連接池Druid開發(Spring)


第一章 連接池

1.1. 遇到的問題-引出連接池

 

 

 

1.2. 連接池思想

 

 

 

1.3. 連接池的概述

在Java中,連接池使用javax.sql.DataSource接口來表示連接池.

 

注意:DataSource僅僅只是一個接口,由各大服務器廠商來實現(Tomcat.JBoss).

常用的DataSource的實現:

  DBCP:  Spring推薦的

  C3P0:  Hibernate推薦的

  Druid : (德魯伊)阿里巴巴開源的,性能最好,速度最快

DataSource(數據源)和連接池(Connection Pool)是同一個.

 

1.4. 使用連接池和不使用連接池的區別在哪里

從代碼上:

不使用連接池: Conenction對象由DriverManager獲取.

  Connection conn = DriverManager.getConnection(url,username,password);

 

使用連接池:

  如何創建DataSource對象,如何在DataSource中設置url,賬號,密碼.

  Connection conn = DataSource對象.getConnection();

--------------------------------------------------------------------

使用連接池的時候:

  釋放資源: Connection對象.close():

  是把Connection放回給連接池,而不是和數據庫斷開.

 

1.5. Druid連接池的使用

1.5.1.   准備druid 連接池jar包到項目

 

 

                    

 

package cn.yq.jdbc.test;

 

import static org.junit.Assert.*;

 

import java.io.InputStream;

import java.io.Reader;

import java.sql.Connection;

import java.util.Properties;

 

import javax.sql.DataSource;

 

import org.junit.Test;

 

import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import com.alibaba.druid.pool.DruidPooledConnection;

 

public class DataSourceTest {

    // 直接創建連接池對象

    @Test

    public void testName() throws Exception {

         // 1.創建連接池對象

         DruidDataSource ds = new DruidDataSource();

         // 2.設置連接數據庫的賬號密碼

         ds.setDriverClassName("com.mysql.jdbc.Driver");

         ds.setUrl("jdbc:mysql://localhost:3306/jdbcdemo");

         ds.setUsername("root");

         ds.setPassword("root");

         ds.setMaxActive(10);// 最大連接數

         // 3.獲取連接對象

         Connection conn = ds.getConnection();

         System.out.println(conn);

    }

 

    // 使用工廠對象創建連接池對象,工廠對象的好處,不需要直接設置賬號密碼等等,只需要將

    // 連接數據庫的賬號密碼等等以指定的 key的名稱配置到 xxx.properties文件中即可,工廠對象底層自動讀取

    @Test

    public void testDataSourceByFactory() throws Exception {

 

         // 1.獲取類加載器用於加載clsspath下面的 配置文件

         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

         // 2.讀取druid.properties配置文件

         InputStream inputStream = classLoader.getResourceAsStream("druid.properties");

         // 3.創建Properties對象,並讀取配置文件對應的輸入流

         Properties p = new Properties();

         p.load(inputStream);

 

         // 4.創建連接池對象

         DataSource ds = DruidDataSourceFactory.createDataSource(p);

         // 5.獲取連接對象

         Connection conn = ds.getConnection();

         System.out.println(conn);

    }

}

 

 

 

 

1.5.2.   druid.propperties

 

 

 

1.5.3.   使用Druid抽取的工具類

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM