连接池是管理数据库连接的一种机制,能够控制连接的个数,默认情况下可以预先创建可用的连接。

成都创新互联公司专注于网站设计制作、做网站、网页设计、网站制作、网站开发。公司秉持“客户至上,用心服务”的宗旨,从客户的利益和观点出发,让客户在网络营销中找到自己的驻足之地。尊重和关怀每一位客户,用严谨的态度对待客户,用专业的服务创造价值,成为客户值得信赖的朋友,为客户解除后顾之忧。
有四种常见的连接池框架
1、Apache的DBCP连接池(Tomcat内置了DBCP)
2、C3P0连接池
3、proxcool连接池
4、阿里公司的德鲁伊框架。
一、引入Maven(只记录了DBCP和C3P0的使用)
    
	    
	    
	    
	
	    
	    
	    
	
	    
	    
	    
二、创建连接池,DataSource有提供getConnection接口。这里采用工厂模式获取数据库连接池的连接。
package com.neusoft.busmis.fatory;
import java.sql.Connection;
import javax.sql.DataSource;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
//DBCP连接池
public class ConnectionFactoryWithDBCP {
private static DataSource ds = null;
static {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8");
bds.setUsername("root");
bds.setPassword("123456");
bds.setInitialSize(1); //设置初始的连接个数
bds.setMaxTotal(2); //设置最大连接数
bds.setMaxIdle(2);
bds.setMaxWaitMillis(2000); //设置等待时间
ds = bds;
}
public static Connection getConnection() throws Exception{
return ds.getConnection();
}
}
package com.neusoft.busmis.fatory;
import java.sql.Connection;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class ConnectionFactoryWithC3P0 {
private static DataSource ds = null;
static {
ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8");
cpds.setUser("root");
cpds.setPassword("123456");
cpds.setMinPoolSize(1); //设置最小的连接个数
cpds.setAcquireIncrement(1);//每次新增的连接个数
cpds.setMaxPoolSize(10);//设置最大的连接个数
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ds = cpds;
}
public static Connection getConnection() throws Exception{
return ds.getConnection();
}
public static DataSource getDataSource() throws Exception{
return ds;
}
}
三、将连接池放到JNDI
因为在java的机制,如果太久没使用一个引用,就会自动清除,不能避免地有时候会重复地进行销毁、创建的动作。所以将连接池配置放在JNDI上,让它在服务器启动时就一直存在。
在tomcat的context.xml里配置数据库信息。
	auth="Container"   	type="javax.sql.DataSource" 	factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory" 	maxActive="5" 	maxIdle="3" 	maxWait="100" 	username="root" 	password="root" 	driverClassName="com.mysql.jdbc.Driver" 	url="jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8" />    http://www.renrendoc.com/p-21933469.html  郑州不孕不育医院:http://www.zzchyy110.com/ 	type="com.mchange.v2.c3p0.ComboPooledDataSource" 	factory="org.apache.naming.factory.BeanFactory" 	driverClass="com.mysql.jdbc.Driver" 	jdbcUrl="jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8" 	user="root" 	password="root" 	minPoolSize="1" 	maxPoolSize="4" 	maxIdleTime="1800" 	acquireIncrement="1" 	maxStatements="0" 	initialPoolSize="1" 	idleConnectionTestPeriod="60" 	acquireRetryAttempts="30" 	acquireRetryDelay="1000" 	testConnectionOnCheckin="false" 	breakAfterAcquireFailure="false" 	testConnectionOnCheckout="false"/> DBCP最主要的是drivereClassName(数据库驱动)、url(数据库地址)、username(数据库用户名)、password(数据库驱动)、name(Resource的名字)、maxIdle(最大空闲数)、maxActive(最大活动数)、auth(连接池的管理者,Container表示交给Tomcat管理)、maxWait(最大等待时间ms)、type(DataSource类)。 注:如果使用JNDI方式,必须将项目发布到Web才能生效。 工厂模式创建连接,用Context类的lookup来找配置信息,java:/comp/env/name。 package com.neusoft.busmis.fatory;   import java.sql.Connection;   import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource;   public class ConnectionFactoryWithJNDI { 	private static DataSource ds = null; 	static { 		try { 			Context ct = new InitialContext(); 			ds = (DataSource)ct.lookup("java:/comp/env/mysql3306busmis-c3p0"); 			ct.close(); 		} catch (Exception e) { 			e.printStackTrace(); 		} 	} 	public static Connection getConnection() throws Exception{ 		return ds.getConnection(); 	} }  
                                                网页名称:数据库连接池                                                
                                                标题链接:http://www.scyingshan.cn/article/jdhjjo.html
                                            

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 