国产日产欧产精品网站|2022仙踪林官网老狼信息|天天澡天天揉揉Av在线|国产精品成人久久久久久久

尚硅谷之JDBC

方式一:

示例代碼:

步驟:

1、加入兩個jar

DBCP數據庫連接池的的jar:Commons-dbcp.jar

連接池實現的依賴庫:Commons-pool.jar,如果不加這個,運行報如下異常

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/pool/KeyedObjectPoolFactory

at com.jdbc.datasource.TestDBCP.main(TestDBCP.java:14)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool.KeyedObjectPoolFactory

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

... 1 more

2、編寫代碼

package com.jdbc.datasource;

import java.sql.Connection;

import java.sql.SQLException;

import org.apache.commons.dbcp.BasicDataSource;

public class TestDBCP {

public static void main(String[] args) throws SQLException {

//1.創建DBCP數據源(即連接池)

BasicDataSource ds = new BasicDataSource();

//2.設置數據源的必須屬性

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

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

ds.setUsername("root");

ds.setPassword("root");

//3.設置數據源的可選屬性

//(1)指定數據庫連接池中初始化連接數的個數

ds.setInitialSize(10);

//(2)指定最大的連接數: 同一時刻可以同時向數據庫申請的連接數

ds.setMaxActive(50);

//(3)在數據庫連接池中保存的最少的空閑連接的數量

ds.setMinIdle(2);

//(4)等待數據庫連接池分配連接的最長時間. 單位為毫秒. 超出該時間將拋出異常.

ds.setMaxWait(1000*5);

//4.從數據源中獲取數據庫連接

Connection conn = ds.getConnection();

System.out.println(conn);

}

}

測試超過連接數

package com.jdbc.datasource;

import java.sql.Connection;

import java.sql.SQLException;

import org.apache.commons.dbcp.BasicDataSource;

public class TestDBCP2 {

public static void main(String[] args) throws SQLException {

//1.創建DBCP數據源(即連接池)

BasicDataSource ds = new BasicDataSource();

//2.設置數據源的必須屬性

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

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

ds.setUsername("root");

ds.setPassword("root");

//3.設置數據源的可選屬性

//(1)指定數據庫連接池中初始化連接數的個數

ds.setInitialSize(3);

//(2)指定最大的連接數: 同一時刻可以同時向數據庫申請的連接數

ds.setMaxActive(5);

//(3)指定最小活躍的連接數: 在數據庫連接池中保存的最少的空閑連接的數量

ds.setMinIdle(2);

//(4)等待數據庫連接池分配連接的最長時間. 單位為毫秒. 超出該時間將拋出異常.

ds.setMaxWait(1000*5);

//4.從數據源中獲取數據庫連接

for(int i=0;i<6;i++){

Connection conn = ds.getConnection();

System.out.println("獲取第"+(i+1)+"個"+conn);

//這里沒有關閉,即沒有放回連接池

}

}

}

測試如果連接重復使用

package com.jdbc.datasource;

import java.sql.Connection;

import java.sql.SQLException;

import org.apache.commons.dbcp.BasicDataSource;

public class TestDBCP3 {

public static void main(String[] args) throws SQLException {

//1.創建DBCP數據源(即連接池)

BasicDataSource ds = new BasicDataSource();

//2.設置數據源的必須屬性

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

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

ds.setUsername("root");

ds.setPassword("root");

//3.設置數據源的可選屬性

//(1)指定數據庫連接池中初始化連接數的個數

ds.setInitialSize(3);

//(2)指定最大的連接數: 同一時刻可以同時向數據庫申請的連接數

ds.setMaxActive(5);

//(3)指定最小活躍的連接數: 在數據庫連接池中保存的最少的空閑連接的數量

ds.setMinIdle(2);

//(4)等待數據庫連接池分配連接的最長時間. 單位為毫秒. 超出該時間將拋出異常.

ds.setMaxWait(1000*5);

//4.從數據源中獲取數據庫連接

for(int i=0;i<10;i++){

new Thread(){

public void run(){

try {

Connection conn = ds.getConnection();

System.out.println("獲取1個"+conn);

Thread.sleep(3000);

//隔3秒換回去

conn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}.start();

}

}

}

?

沅江市| 会昌县| 哈尔滨市| 乐至县| 肥西县| 明溪县| 乌鲁木齐县| 德庆县| 晋江市| 葵青区| 纳雍县| 平罗县| 普格县| 潢川县| 鸡泽县| 丹江口市| 顺平县| 深圳市| 呼和浩特市| 张掖市| 滕州市| 琼海市| 金秀| 松桃| 贺兰县| 台江县| 锦屏县| 扶风县| 麻栗坡县| 贡觉县| 纳雍县| 项城市| 山东省| 托克托县| 辽阳县| 大姚县| 溧阳市| 万安县| 东宁县| 民乐县| 武冈市|