DBCP 数据库连接池配置

来源:互联网 发布:淘宝网卖凉果需要什么 编辑:程序博客网 时间:2024/04/28 00:11

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. 使用配置文件初始化BasicDataSourceds= (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.手工初始化BasicDataSourceds=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}}


 

 

原创粉丝点击