1.準備相關jar包和配置文件(可選)
commons-dbcp-1.2.2.jar #dbcp 數據庫連接池必需的jar包
commons-pool-1.5.2.jar #dbcp 數據庫連接池必需的jar包
config.properties #dbcp 數據庫連接池可選的配置文件
mysql-connector-java-5.0.8-bin.jar #Mysql 數據庫驅動
有兩種配置方法:
第一種:
配置文件:
#數據庫驅動
driverClassName=com.mysql.jdbc.Driver
#連接參數
url=jdbc:mysql://localhost:3306/test
#用戶
username=root
#密碼
password=123456
#初始化連接池數量
initialSize=10
#最大數量
maxActive=50
#最大空閒數量
maxIdle=20
#最小空閒數量
minIdle=5
#超時等待時間
maxWait=60000
#數據庫編碼
connectionProperties=useUnicode=true;characterEncoding=utf8
#自動事務提交
defaultAutoCommit=true
#事務級別
defaultTransactionIsolation=READ_COMMITTED
初始化代碼:
package xgn.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class JDBCHelper {
private static Properties config=new Properties();
private static BasicDataSource ds;
static{
InputStream in=JDBCHelper.class.getClassLoader().getResourceAsStream("config.properties");
try {
config.load(in);
//1. 使用配置文件初始化BasicDataSource
ds= (BasicDataSource) BasicDataSourceFactory.createDataSource(config);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection(){
try{
return ds.getConnection();
}catch(Exception ex){
throw new RuntimeException(ex);
}
}
private static boolean Destory(Connection cn,Statement st,ResultSet rs){
boolean ret=true;
if(cn!=null){
try{
cn.close();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
ret=false;
}
}
if(st!=null){
try{
st.close();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
ret=false;
}
}
if(rs!=null){
try{
rs.close();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
ret=false;
}
}
return ret;
}
}
第二種方法手工初始化連接池
package xgn.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class JDBCHelper {
private static Properties config=new Properties();
private static BasicDataSource ds;
static{
InputStream in=JDBCHelper.class.getClassLoader().getResourceAsStream("config.properties");
try {
config.load(in);
//1. 使用配置文件初始化BasicDataSource
//ds= (BasicDataSource) BasicDataSourceFactory.createDataSource(config);
//2.手工初始化BasicDataSource
ds=new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setDefaultCatalog("test");
ds.setUrl("jdbc:mysql://127.0.0.1:3306/test");
ds.setUsername("root");
ds.setPassword("123456");
ds.setInitialSize(20);
ds.setMaxActive(30);
ds.setMinIdle(10);
ds.setMaxIdle(20);
ds.setMaxWait(1000);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection(){
try{
return ds.getConnection();
}catch(Exception ex){
throw new RuntimeException(ex);
}
}
private static boolean Destory(Connection cn,Statement st,ResultSet rs){
boolean ret=true;
if(cn!=null){
try{
cn.close();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
ret=false;
}
}
if(st!=null){
try{
st.close();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
ret=false;
}
}
if(rs!=null){
try{
rs.close();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
ret=false;
}
}
return ret;
}
}
使用:
package xgn.servlets;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import xgn.utils.JDBCHelper;
/**
* Servlet implementation class servlet1
*/
public class servlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public servlet1() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("in");
try{
Connection cn= JDBCHelper.getConnection();
Connection cn1=JDBCHelper.getConnection();
Connection cn2=JDBCHelper.getConnection();
Connection cn3=JDBCHelper.getConnection();
Connection cn41=JDBCHelper.getConnection();
PreparedStatement st=cn.prepareStatement("select * from account");
ResultSet rs=st.executeQuery();
while(rs.next()){
System.out.println(rs.getString("account"));
}
cn.close();
}catch(Exception ex){
throw new RuntimeException(ex);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}