Oracle连接池,待完善。
来源:互联网 发布:慕课网 java视频教材 编辑:程序博客网 时间:2024/05/01 02:35
package java_package;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.List;
public class DBConnectionPool {
/**
* Oracle注册驱动字符串
*/
private final static String DBDriver = "oracle.jdbc.driver.OracleDriver";
/**
* Oracle连接数据库字符串
*/
private final static String OracleConnect="jdbc:oracle:thin:@127.0.0.1:1521:OracleDB";
/**
* Oracle 账户
*/
private final static String UID = "zh";
/**
* Oracle 密码
*/
private final static String UPASS = "123";
/**
* 连接池的增量
*/
private final static int ConnectionAddNumber = 5;
/**
* 连接池的初始数量
*/
private final static int ConnectionFrist = 2;
/**
* 连接池的最大数量
*/
private final static int ConnectionMAX = 50;
/**
* 数据库连接的真正数量
*/
private static int Real_Connection = 0;
private static boolean IsFrist = true;
/**
* 数据库连接池
*/
public static List<Connection> list_Connection = new ArrayList<Connection>();
/**
* 连接池初始化与创建
*/
private static void ListCreateConnection()
{
if(IsFrist) //初始化添加
{
for(int i=0;i<ConnectionFrist;i++)
{
try
{
list_Connection.add(CreateConnection());
Real_Connection++;
}
catch(Exception e){System.out.println("Error:"+e.getMessage());}
IsFrist = false;
}
}
else if(Real_Connection < ConnectionMAX)
{
int size = ConnectionMAX-Real_Connection;
int number = size>=ConnectionAddNumber?ConnectionAddNumber:size;
for(int i = 0;i<number;i++)
{
try
{
list_Connection.add(CreateConnection());
Real_Connection++;
}
catch(Exception e){System.out.println(e.getMessage());}
}
}
else
{
System.out.println("连接池超出多大上限:"+ConnectionMAX);
}
}
/**
* 创建Connection对象
* @return 返回Connection一个实例化对象
* @throws Exception
*/
private static Connection CreateConnection() throws Exception
{
Connection conn = null;
Class.forName(DBDriver);
conn = DriverManager.getConnection(OracleConnect,UID,UPASS);
return conn;
}
/**
* 获得一个OracleConnection实例化对象
* @return
*/
public static Connection GetConnection()
{
Connection conn = null;
if(list_Connection.size()==0)
{
ListCreateConnection();
}
conn = list_Connection.get(0);
list_Connection.remove(0);
return conn;
}
/**
* (关闭)OracleConnection 实例化对象[非销毁]
* @param conn
*/
public static void CloseConnection(Connection conn)
{
if(conn!=null)
{
list_Connection.add(conn);
}
}
/**
* 销毁连接池中的所有连接
*/
public static void Dispose()
{
for(int i =0;i<list_Connection.size();i++)
{
try{
list_Connection.get(i).close();}catch (Exception e) {
continue;
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.List;
public class DBConnectionPool {
/**
* Oracle注册驱动字符串
*/
private final static String DBDriver = "oracle.jdbc.driver.OracleDriver";
/**
* Oracle连接数据库字符串
*/
private final static String OracleConnect="jdbc:oracle:thin:@127.0.0.1:1521:OracleDB";
/**
* Oracle 账户
*/
private final static String UID = "zh";
/**
* Oracle 密码
*/
private final static String UPASS = "123";
/**
* 连接池的增量
*/
private final static int ConnectionAddNumber = 5;
/**
* 连接池的初始数量
*/
private final static int ConnectionFrist = 2;
/**
* 连接池的最大数量
*/
private final static int ConnectionMAX = 50;
/**
* 数据库连接的真正数量
*/
private static int Real_Connection = 0;
private static boolean IsFrist = true;
/**
* 数据库连接池
*/
public static List<Connection> list_Connection = new ArrayList<Connection>();
/**
* 连接池初始化与创建
*/
private static void ListCreateConnection()
{
if(IsFrist) //初始化添加
{
for(int i=0;i<ConnectionFrist;i++)
{
try
{
list_Connection.add(CreateConnection());
Real_Connection++;
}
catch(Exception e){System.out.println("Error:"+e.getMessage());}
IsFrist = false;
}
}
else if(Real_Connection < ConnectionMAX)
{
int size = ConnectionMAX-Real_Connection;
int number = size>=ConnectionAddNumber?ConnectionAddNumber:size;
for(int i = 0;i<number;i++)
{
try
{
list_Connection.add(CreateConnection());
Real_Connection++;
}
catch(Exception e){System.out.println(e.getMessage());}
}
}
else
{
System.out.println("连接池超出多大上限:"+ConnectionMAX);
}
}
/**
* 创建Connection对象
* @return 返回Connection一个实例化对象
* @throws Exception
*/
private static Connection CreateConnection() throws Exception
{
Connection conn = null;
Class.forName(DBDriver);
conn = DriverManager.getConnection(OracleConnect,UID,UPASS);
return conn;
}
/**
* 获得一个OracleConnection实例化对象
* @return
*/
public static Connection GetConnection()
{
Connection conn = null;
if(list_Connection.size()==0)
{
ListCreateConnection();
}
conn = list_Connection.get(0);
list_Connection.remove(0);
return conn;
}
/**
* (关闭)OracleConnection 实例化对象[非销毁]
* @param conn
*/
public static void CloseConnection(Connection conn)
{
if(conn!=null)
{
list_Connection.add(conn);
}
}
/**
* 销毁连接池中的所有连接
*/
public static void Dispose()
{
for(int i =0;i<list_Connection.size();i++)
{
try{
list_Connection.get(i).close();}catch (Exception e) {
continue;
}
}
}
}
//程序需要导入Oracle驱动包:classes12.jar
- Oracle连接池,待完善。
- oracle HWM原因和解决方案(待完善)
- 待完善。。
- 待完善
- 待完善
- 待完善
- 待完善
- 待完善
- 待完善
- 分布式通信【待完善】
- 结构设计【待完善】
- 归并算法.(待完善)
- 递归总结(待完善)
- 模式理解(待完善)
- 窗口管理 (待完善...)
- Launcher(待完善...)
- LeetCode_LRU Cache(待完善)
- 闲杂(待完善)
- 类的设计
- ubuntu下php访问mysql
- php const用法详解
- 今天来开始自己的代码编写之路
- 向oracle中插入date数据类型
- Oracle连接池,待完善。
- windows 下路径缩写
- 调试工具DebugView
- 视频编码的基本概念
- Understanding and Implementing Observer Pattern in C++
- 指令周期
- arcengine java :Could not load native libraries 问题解决
- c3p0详细配置
- Dos命令集列表