连接池大全

1、c3p0  链接吃的使用

public  void  Cp(){


BasicDataSource dataSource = new BasicDataSource(); 
dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver");
//设置连接字符串
dataSource.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:xe");
//指定数据库用户名
dataSource.setUser("scott");
//指定数据库密码
dataSource.setPassword("tiger");
//指定数据库连接池中处于活动连接的最大数目
dataSource.setMaxPoolSize(10);
//指定数据库连接池中处于空闲状态的数据库连接的最大数据
dataSource.setMaxIdleTime(5);
//指定数据库连接池中的数据库连接处于空闲状态的最长时间
con = dataSource.getConnection();

}


2、properties的使用


public void textPoolFactory() {
Properties properties=new Properties();
try {
properties.load(new FileInputStream("datapool.Properties"));
final DataSource dataSource=BasicDataSourceFactory.createDataSource(properties);
System.out.println(dataSource.getConnection());
System.out.println("1");
System.out.println(dataSource.getConnection());
System.out.println("2");
Connection   con1=dataSource.getConnection();
System.out.println("con1:"+con1.getMetaData());
new Thread(){
public void run() {
try {
Connection  con=dataSource.getConnection();
System.out.println("con:....."+con.getMetaData());
} catch (SQLException e) {
e.printStackTrace();
}
};
}.start();
/**

* 在等待是如果时间超出了指定的时间则会抛出异常,

* 原因在于连接池中没有了数据

* **/
// Thread.sleep(4000);   时间必须小于设置的时间,否则会抛出异常,原因在数据池中没有了数据
Thread.sleep(2000);   
con1.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

}



properties  属性信息:

url=jdbc\:sqlserver\://localhost\:1433;databaseName\=StuInfoDB
username=sa
password=sa
driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
maxActive=3
initialSize=1
minIdle=2
maxWait=3000

url=jdbc\:sqlserver\://localhost\:1433;databaseName\=StuInfoDB
username=sa
password=sa
driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
maxActive=3
initialSize=1
minIdle=2
maxWait=3000


3、c3p0的连接方式

/**

* c3p0的连接方式

*   需要依赖炸包 c3p0-0.1.9.0.4.jar
* **/
/**
public  void  Cp(){

BasicDataSource dataSource = new BasicDataSource(); 
dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver");
//设置连接字符串
dataSource.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:xe");
//指定数据库用户名
dataSource.setUser("scott");
//指定数据库密码
dataSource.setPassword("tiger");
//指定数据库连接池中处于活动连接的最大数目
dataSource.setMaxPoolSize(10);
//指定数据库连接池中处于空闲状态的数据库连接的最大数据
dataSource.setMaxIdleTime(5);
//指定数据库连接池中的数据库连接处于空闲状态的最长时间
con = dataSource.getConnection();



}
**/




4、BoneCP 数据库连接池

public Connection getConnection() {
Properties properties = new Properties();
BoneCPConfig cPConfig = new BoneCPConfig();
BoneCP cp = null;
try {
properties.load(new FileInputStream("BoneCPConfig.Properties"));
Class.forName(properties.getProperty("driverClassName"));
cPConfig.setJdbcUrl(properties.getProperty("url"));
cPConfig.setUsername(properties.getProperty("username", "sa"));
cPConfig.setPassword(properties.getProperty("password", "sa"));
cPConfig.setPoolAvailabilityThreshold(20);
cPConfig.setLazyInit(true);
cPConfig.setMaxConnectionsPerPartition(20);
cPConfig.setMaxConnectionAgeInSeconds(10 * 1000);
cPConfig.setConnectionTimeoutInMs(1000);
cp = new BoneCP(cPConfig);
con = cp.getConnection();
} catch (FileNotFoundException e2) {
e2.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}



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


package cn.sdcet.DateSouserPool;


import java.sql.Connection;
import java.sql.SQLException;


import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
import com.jolbox.bonecp.BoneCPDataSource;


public class DataPoolTest {

static Connection con=null;
static BoneCPDataSource ds=null;


    public  Connection   getConnection(){
    
    /**
   
    *  1、Dbcp链接
   
    *  特点:
   
    * **/
//     Properties  properties=new Properties();
// try {
// properties.load(new FileInputStream("F:\\MyEclipse程序\\MyEclipse Professional程序\\cn.sdcet.JavaWebMvc\\datapool.Properties"));
// DataSource   dataSource=BasicDataSourceFactory.createDataSource(properties);
// con=dataSource.getConnection();
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// } catch (Exception e) {
// e.printStackTrace();
// }
// return con;
   
   
    /**
   
    * 2、Dbcp链接
   
    * 特点:
   
    * **/
//     BasicDataSource  bds=new BasicDataSource();
//     bds.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//     bds.setUrl("jdbc:sqlserver://localhost:1433;databaseName=StuInfoDB");
//     bds.setUsername("sa");
//     bds.setPassword("sa");
//     bds.setInitialSize(10);
//     bds.setMaxActive(20);
//     bds.setMaxIdle(5);
//     try {
// con=bds.getConnection();
// } catch (SQLException e) {
// e.printStackTrace();
// }
// return con;
   
   
    /**
   
    *  C3p0链接
    *  
    *  特点:单链接效率高,多则相反
    *  
    * **/
// ComboPooledDataSource ds =new ComboPooledDataSource();
// try {
// ds.setDriverClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// ds.setJdbcUrl("jdbc:sqlserver://localhost:1433;databaseName=StuInfoDB"); 
// ds.setUser("sa"); 
// ds.setPassword("sa"); 
// ds.setMaxPoolSize(20); 
// ds.setInitialPoolSize(10); 
// ds.setMaxIdleTime(2000); 
// con=ds.getConnection();
// } catch (PropertyVetoException e) {
// e.printStackTrace();
// } catch (SQLException e) {
// e.printStackTrace();
// }  
// return con;


/**

* 1、BoneCP链接  BoneCPConfig

* 特点:目前最快的数据库链接的组件,比C3p0以及Dbcp快25倍


* **/
//     try {
// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// } catch (ClassNotFoundException e) {
// e.printStackTrace();
// }
//    
// BoneCPConfig cPConfig = new BoneCPConfig();
// cPConfig.setPoolAvailabilityThreshold(20);// 设置连接池可用极限连接数
// cPConfig.setLazyInit(true);// 设置是否延迟初始化
// cPConfig.setMaxConnectionsPerPartition(20);// 设置池中最多的Connection值
// cPConfig.setMaxConnectionAgeInSeconds(1000);//设置Connection最大有效时间(以妙为单位)
// cPConfig.setConnectionTimeoutInMs(1000);//设置获取连接的等待时间(毫秒),如果为0永远等待
// cPConfig.setJdbcUrl("jdbc:sqlserver://localhost:1433;databaseName=StuInfoDB");//设置连接数据库的url路径
// cPConfig.setUsername("sa");//设置登录数据库服务器的用户名
// cPConfig.setPassword("sa");//设置登录数据库服务器的用户口令
// ds=new BoneCPDataSource(cPConfig);// 创建BoneCPDataSource数据源
// try {
// con = ds.getConnection();
// } catch (SQLException e) {
// e.printStackTrace();
//
//
// return  con;
//     }
    
   
    /**

*  2、BoneCP链接   BoneCP

* 特点:目前最快的数据库链接的组件,比C3p0以及Dbcp快25倍


* **/
    try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
BoneCPConfig cPConfig =new BoneCPConfig();//建立连接池组建对象,它包含数据驱动和连接属性
cPConfig.setPoolAvailabilityThreshold(20);// 设置连接池可用极限连接数
cPConfig.setLazyInit(true);// 设置是否延迟初始化
cPConfig.setMaxConnectionsPerPartition(20);// 设置池中最多的Connection值
cPConfig.setMaxConnectionAgeInSeconds(1000);//设置Connection最大有效时间(以妙为单位)
cPConfig.setConnectionTimeoutInMs(1000);//设置获取连接的等待时间(毫秒),如果为0永远等待
cPConfig.setJdbcUrl("jdbc:sqlserver://localhost:1433;databaseName=StuInfoDB");//设置连接数据库的url路径
cPConfig.setUsername("sa");//设置登录数据库服务器的用户名
cPConfig.setPassword("sa");//设置登录数据库服务器的用户口令
BoneCP cp = null;
try {
cp = new BoneCP(cPConfig);   // 创建BoneCP连接池并把cPConfig传递给此对象
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
con = cp.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}   
return con;
    }
   
    


}












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒马coding

你的支持是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值