连接池:PoolManager.java
package com.student.comm;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.PoolingDriver;
import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.impl.GenericObjectPool;
public class PoolManager {
private static String driver = "com.mysql.jdbc.Driver",//驱动
url = "jdbc:mysql://localhost:3306/student",//URL
Name = "root",//用户名
Password = "root";//密码
private static Class driverClass = null;
private static ObjectPool connectionPool = null;
public PoolManager() {
}
/**
* 装配配置文件
* initProperties
*/
private static void loadProperties() {
try {
java.io.InputStream stream = new java.io.FileInputStream(
"config.properties");
java.util.Properties props = new java.util.Properties();
props.load(stream);
//取config.properties配置文件的信息
driver = props.getProperty("MYSQL_DRIVER");
url = props.getProperty("MYSQL_URL");
Name = props.getProperty("MYSQL_LOGIN_NAME");
Password = props.getProperty("MYSQL_LOGIN_PASSWORD");
} catch (FileNotFoundException e) {
System.out.println("读取配置文件异常");
} catch (IOException ie) {
System.out.println("读取配置文件时IO异常");
}
}
/**
* 初始化数据源
*/
private static synchronized void initDataSource() {
if (driverClass == null) {
try {
driverClass = Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
/**
* 连接池启动
* @throws Exception
*/
public static void StartPool() {
loadProperties();
initDataSource();
if (connectionPool != null) {
ShutdownPool();
}
try {
connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
url, Name, Password);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(
connectionFactory, connectionPool, null, null, false, true);
Class.forName("org.apache.commons.dbcp.PoolingDriver");
PoolingDriver driver = (PoolingDriver) DriverManager
.getDriver("jdbc:apache:commons:dbcp:");
driver.registerPool("dbpool", connectionPool);
System.out.println("装配连接池OK");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 释放连接池
*/
public static void ShutdownPool() {
try {
PoolingDriver driver = (PoolingDriver) DriverManager
.getDriver("jdbc:apache:commons:dbcp:");
driver.closePool("dbpool");
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 取得连接池中的连接
* @return
*/
public static Connection getConnection() {
Connection conn = null;
if (connectionPool == null)
StartPool();
try {
conn = DriverManager
.getConnection("jdbc:apache:commons:dbcp:dbpool");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 获取连接
* getConnection
* @param name
* @return
*/
public static Connection getConnection(String name) {
return getConnection();
}
/**
* 释放连接
* freeConnection
* @param conn
*/
public static void freeConnection(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 释放连接
* freeConnection
* @param name
* @param con
*/
public static void freeConnection(String name, Connection con) {
freeConnection(con);
}
public static void main(String[] args) {
try {
Connection conn = PoolManager.getConnection();
if(conn != null){
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select * from article");
int c = rs.getMetaData().getColumnCount();
while(rs.next()){
for(int i=1;i<=c;i++){
System.out.print(rs.getObject(i));
}
}
rs.close();
}
PoolManager.freeConnection(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
并在当前目录下建config.properties文件。
MYSQL_DRIVER = com.mysql.jdbc.Driver
MYSQL_URL = jdbc:mysql://localhost:3306/xbj
MYSQL_LOGIN_NAME = root
MYSQL_LOGIN_PASSWORD = root
分享到:
相关推荐
利用dbcp实现数据库连接池,附带两个jar包,本人已测试通过
DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4。 DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 JDBC 3。 DBCP 1.4 版本需要运行于 JDK 1.6 ,支持 JDBC 4。 1.3和1.4基于...
1. 引 2. 数据库连接池 3. 主要配置说明 2. FindBugs:Java 静态代码检查(3486)
数据库连接池的资源包(c3p0 , dbcp,druid连接池)
包含jdbc连接数据库与dbcp连接数据库代码,方便基础学习与深入理解数据库连接池
包含jdbc连接数据库与dbcp连接数据库代码,方便基础学习与深入理解数据库连接池
DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP; 使用连接池的第一项工作就是导包,这里需要的两个jar包分别是: commons-dbcp-1.4....
java中DBCP数据库连接池使用方法以及代码文件:(dbcpconfig.properties+JdbcPool_dbcp.java)以及jjdbc所需的ar包(commons-pool.jar+commons-dbcp-1.2.2.jar)
常用四大连接池集合c3p0,dbcp,druid,HikariCP,内有四大连接池的使用方法,配置方法,以及它们之间的比较和介绍,和spring继承等配置方法。 c3p0 太古老,代码及其复杂,不利于维护。貌似都比它强。 dbcp 是 ...
C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象 DBCP (Database Connection Pool)是一个依赖Jakarta ...
java连接数据库的几种方式
C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 DBCP(DataBase connection pool),数据库连接池。是 ...
本资源是博客《使用 spring 集成 dbcp 数据库连接池到 Wowza 插件》中的示例代码,博客地址:http://blog.csdn.net/defonds/article/details/22102561。
阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好。
刚学完用这种连接数据库方法,觉得挺好的就上传了
1、DBCP连接池的jar包 2、C3P0连接池的jar包 3、Druid连接池的jar包 4、DBUtils的jar包
采用Struts框架,本项目中没有使用Hibernate和Spring,使用了DBCP连接池等零碎技术和Struts的文件上传。具体可以查看相关文档,文档在项目包中可以找到。 多人通讯录主要针对普通用户和管理员,管理员可以管理用户,...
文件名与介绍: [Database-support-...[myDbPoolUse]C3P0连接池配置/DBCP连接池配置/Apache的DBUtils框架使用 [myFilterDemoWeb]过滤器Filter学习-设置全站编码与设置页面缓存 [myGzipWeb]全站压缩 [myJavaMainDe
Apache Commons DBCP软件实现数据库连接池 文献资料 可以在上找到更多信息。可以浏览 。与Apache Commons DBCP的使用有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者...
MySql5.0\8.0驱动、DBCP数据库连接池、C3P0数据库连接池、Druid数据库连接池、详细配置文件