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接口提供的适合于自身的 ......
声明字段映射
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FiledRef
{
String fieldName();
}
声明表映射
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface TableRef
{
& ......
package com.njty.util;
public class Test {
private static final double EARTH_RADIUS = 6378137;
private static double rad(double d)
{
return d * Math.PI / 180.0;
}
  ......
为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事我也不大清楚,应该是前年吧,我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲 ......
(一)线程同步
实现生产者消费者问题来说明线程问题,举例如下所示:
/**
* 生产者消费者问题
*/
public class ProducerConsumer {
/**
* 主方法
*/
public static void main(String[] args) {
ProductBox pb = new ProductBox ......