当我们的Web应用是独立运行的,不需要web服务器的支持时,我们想应用数据库连接池,可以使用独立的数据库连接池方案,Apache的DBCP就是其中一种,配置步骤如下:
步骤一、下载必需的三个jar包
commons-dbcp2-2.2.0.jarcommons-logging-1.2.jarcommons-pool2-2.5.0.jar
步骤二、创建基于DBCP方式的数据库连接池公共类
package com.drathin.dbpool;import java.sql.*;import java.util.Properties;import org.apache.commons.dbcp2.BasicDataSource;import org.apache.commons.dbcp2.BasicDataSourceFactory;import org.apache.tomcat.jdbc.pool.DataSource;public class DbcpPool { private static BasicDataSource dataSource = null; public DbcpPool(){ } //初始化数据库连接池 public static void init(){ if(dataSource != null){ try{ dataSource.close(); }catch(Exception e){ e.printStackTrace(); } dataSource = null; } //使用properties对象定义数据库连接池信息 try{ Properties p = new Properties(); p.setProperty("driverClassName", "com.mysql.jdbc.Driver"); p.setProperty("url","jdbc:mysql://localhost:3306/maiba"); p.setProperty("username","root"); p.setProperty("password","root"); p.setProperty("maxActive","30"); p.setProperty("maxIdle","10"); p.setProperty("maxWait","1000"); p.setProperty("removeAbandoned","false"); p.setProperty("removeAbandonedTimeout","120"); p.setProperty("testOnBorrow","true"); p.setProperty("logAbandoned","true"); dataSource = (BasicDataSource)BasicDataSourceFactory.createDataSource(p); }catch(Exception e){ e.printStackTrace(); } } //从连接池中获取连接 public static synchronized Connection getConnection() throws SQLException{ if(dataSource == null){ init(); } Connection conn = null; if(dataSource != null){ conn = dataSource.getConnection(); } return conn; }}
步骤三、测试页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="com.drathin.dbpool.*" import="java.sql.*" %>独立于web服务器的数据库连接池
I D | <%=rs.getInt("id") %> |
账 户 | <%=rs.getString("account") %> |
密 码 | <%=rs.getString("password") %> |
昵 称 | <%=rs.getString("user_name") %> |
邮 箱 | <%=rs.getString("email") %> |
附带数据库:
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `account` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `user_name` varchar(255) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;INSERT INTO `user` VALUES ('1', 'drathin', '123456', 'Drathin', 'v2v3chen@qq.com');