dbcp连接mysql数据库_DBCP配置连接数据库

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="oracle.jdbc.driver.OracleDriver",//驱动

url = "jdbc:oracle:thin:@192.168.0.40:1521:drcom",//URL

Name="drcom",//用户名

Password="drcom";//密码

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);

driver = props.getProperty("ORACLE_DRIVER");

url = props.getProperty("ORACLE_URL");

Name = props.getProperty("ORACLE_LOGIN_NAME");

Password = props.getProperty("ORACLE_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);

}

/**

* 例子

* main

* @param args

*/

public static void main(String[] args) {

try {

Connection conn = PoolManager.getConnection();

if(conn != null){

Statement statement = conn.createStatement();

ResultSet rs = statement.executeQuery("select * from tblgxinterface");

int c = rs.getMetaData().getColumnCount();

while(rs.next()){

System.out.println();

for(int i=1;i<=c;i++){

System.out.print(rs.getObject(i));

}

}

rs.close();

}

PoolManager.freeConnection(conn);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值