java 数据库连接池
数据库连接池,是一种相当实用的应用程序。它可以保存、维护及创建用户所需的数据库连接。从而使得用户得到一个连接的时间降低90%以上。大大提升了数据库访问的反应时间。
这个是一个开源的代码。大家可以修改它、使用它。
希望我的代码能对大家有用。
此代码,经过1000数量级的多线程并发访问测试。在四核CPU下也进行了多线程测试。保证了连接池在真多线程上同步访问的安全性。
里面包含了一个公开的接口。使用这个接口里面的函数。可以轻易创建使用数据库连接池服务。
使用一个守护线程维护这个连接池,完全自动化。
下载连接:http://download.csdn.net/user/lauo1188
连接池接口类:
package mysql;
import java.sql.*;
import java.sql.ResultSet;
public interface Pool
{
public boolean start(String dbname,String user,String psw); //启动数据库连接池服务
//以下start函数将允许用户设置最低空闲连接数,最高空闲连接数,最大连接数
public boolean start(int lows,int maxs,int maxc,String dbname,String user,String psw);
public Connection getConnection(); //得到连接器
public boolean freeConnection(Connection con);//将连接返回到连接池中
public boolean close(); //清除连接池,并且关闭它(使之变得不可用)
}
第一个实现类:VectorPool
/**
* @(#)Pool.java
*
*
* @author lauo
* @version 1.00 2010/5/15
*
* 测试完成于2010-5-16 22:40分
*/
package mysql;
import mysql.*;
import java.sql.*;
import java.util.*;
/*
*这里将实现ConnectionPool接口
*/
public class VectorPool extends Thread implements Pool
{
protected final boolean debug = false; //是否debug态(如是 输出debug状态信息)
protected boolean init = false;//是否已经将setting初始化
//timeDiff 一个连接超过此时间未使用过,则需要更新此连接----1小时
protected final long timeDiff = 60*60*1000 ;//1小时60分钟,1分钟60秒,1秒1000毫秒
protected int lows = 20 ; //连接池的最小空闲连接数
protected int maxs = 100 ; //连接池的最大空闲连接数
protected int maxc = 100;
protected String dbname = null;
protected String user = null;
protected String psw = null;
protected Integer conCount = 0; //这个是静态的。当前连
相关文档:
List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1 List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个java对象转换为字节序列,即java对象序列号,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象,即反序列化。
把Java对象转换为字节序列的过程称为对象的序列化。
......
鉴于网上搜到的都是基于jdk1.4或以前版本,而且本地库用的是C语言。而现在是基于C++,所以更新记录如下:
第一步:创建Java源码文件
public class Hello{
static{
System.loa ......
(一)线程同步
实现生产者消费者问题来说明线程问题,举例如下所示:
/**
* 生产者消费者问题
*/
public class ProducerConsumer {
/**
* 主方法
*/
public static void main(String[] args) {
ProductBox pb = new ProductBox ......