1、c3p0 链接吃的使用
public void Cp(){
}
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;
}
}