java数据库连接池详细操作

请问JAVA中如何实现数据库连接池,不要ORM映射框架提供的连接池。最好可以提供一个视频教程。十分感谢。

是自己编的 可以引用 连接池思想就是这个啊
不过你可以下载 已经编好的连接池 上面有API 自己可以按照这个思想 就回用 了;

import java.io.FileInputStream;

public class ConnectionPool{
private Vector<Connection> pool;
private String url;
private String username;
private String password;
private String driverClassName;
// 连接池的大小,也就是连接池中有多少个数据库连接。
private int poolSize = 1;

private static ConnectionPool instance =null;
//私有的构造方法,禁止外部创建本类的对象。

// 使用了设计单子模式
private ConnectionPool(){
init();
}

// 返回当前连接池的一个对象
public static ConnectionPool getInstance(){
if(instance==null){
instance=new ConnectionPool();
}
return instance;
}

//连接池初始化方法,读取属性文件的内容,建立连接池中的初始连接
private void init(){
pool= new Vector<Connection>(poolSize);
addConnection();
}

//返回连接到连接池中
public synchronized void release(Connection conn){
pool.add(conn);
}
// 关闭连接池中的所有数据库连接
public synchironized void closePool(){
for(int i=0;i<pool.size();i++){
try{
((Connection)pool.get(i)).close();
}catch(SQLExcepiton e){
e.printStachTrace();
}
pool.remove(i);
}
}

/**
* 返回连接池中的一个数据库连接
*/
public synchronized Connection getConnection(){
if(pool.size()>0){
Connection conn = pool.get(0);
pool.remove(conn);
return conn;
}else{
return null;
}
}

// 在连接池中创建初始设置的的数据库连接

private void addConnection(){
Connection conn = null;
for (int i=0;i<poolSize;i++){

try{
Class.forName(driverClassName);
conn=java.sql.Drivermanager.getConnection(url,username,password);
pool.add(conn);
}catch(ClassNotFoundException e){
e.printStachTrace();
}catch(){}
}

}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-31
因为工作需要要使用到连接池,所以拜读了互联网上众多前辈的文章,学了不少经验,这里想做一个小结,加上自己的想法和在一起,希望能给大家一些帮助。   目的: 消除数据库频繁连接带来的开销和瓶颈。   解决方案: 不过多的限制用户的使用,既不能太多的要求用户按规定的方法得到和使用数据库连 尽量保持用户的习惯   目前的很多方法都是要求用户只能按规定方法使用连接,不能使用直接关闭数据连接的方法。解决办法就是使用代理类,来中间解决。可以参考 http://www-900.ibm.com/developerWorks/cn/java/l-connpoolproxy/index.sHTML 能维护连接的正常状态 要求用户按规定的方法得到和使用数据库连 尽量保持用户的习惯   目前的很多方法都是要求用户只能按规定方法使用连接,不能使用直接关闭数据连接的方法。解决办法就是使用代理类,来中间解决。可以参考 http://www-900.ibm.com/developerWorks/cn/java/l-connpoolproxy/index.sHTML 能维护连接的正常状态   因为针对数据库连接创建的资源,如果不能及时的释放,就会影响下一次数据连接的使用。例如在sql 2k中,一个连接不同创建多条Statement否则操作时会有数据连接占线的异常,所以必须在归还连接以后释放这些资源
第2个回答  2013-07-31
冒得问题?给个网址给你,希望你有所收获 http://www.verycd.com/topics/215898

java中建立数据库连接池,有哪几个步骤
1.让tomcat容器启动创建数据库连接池:配置的地方很多,根据不同的需求配置在不同的位置,但原理就一个,就是要配置一个Context标签下有一个resource标签。a.在Tomcat 6.0\\conf\\Catalina\\localhost目录下新建一个跟项目名一样的*.xml文件 b.数据源设置的名字(JNDI) auth:表示数据源由谁管理,这儿是t...

Java数据库连接池的几种配置方法(以MySQL数
username:数据库用户名 password:数据库密码 maxWait:指定最大建立连接等待时间,如果超过此时间将接到异常 maxIdle:指定连接池中连接的最大空闲数 maxActive:指定连接池最大连接数 3、配置web.xml文件。<web-app> <resource-ref> <description>mysql数据库连接池配置<\/description> <res-ref-name>jdbc...

java数据库连接池最大连接数最小连接数怎么设置
最小连接数:就是连接池初始化的连接(连接池初始化多少条连接)\/\/ 设置最大连接数,(根据并发请求合理设置)。config.setMaxTotal(100);\/\/ 设置最大空闲连接数,(根据并发请求合理设置)config.setMaxIdle(20);\/\/ 多长空闲时间之后回收空闲连接 setMinEvictableIdleTimeMillis(60000);\/\/ 设置最小...

java怎么与数据库连接
1、首先需要安装好JDK(配置环境变量),如图所示:2、其次要安装好MySQL数据库,可以使用可视化Navicar For MySQL,如图所示:3、最后通过代码进行连接。(1)确定连接路径URL:String url="jdbc:mysql:\/\/localhost(可以是本机IP地址):3306(端口号)\/mysqltest(数据库名称)?"+"user=用户账号&password=...

什么是Java web开发中数据库的连接池技术,它的原理大致是什么?_百度...
一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池...

Java Pool连接池(Connect Pool)
在处理网络连接,如数据库连接(DB connection)和Socket连接时,通常会使用Connection Pool来优化资源管理。这是因为频繁创建和销毁这些对象会耗费大量时间,对系统性能构成瓶颈。Connection Pool主要分为两种实现方式:1. 受管的Connection Pool: 这类池遵循JCA的Resource Adapter规范,用户通过JNDI查找并获取...

hadoop怎么用java jdbc连接池
连接池只是管理一堆的 "连接 ",而不是管理怎么样去连接 ,像odbc,jdbc说的只是如何与数据库连接.连接管理 "连接 ",并不是每次要与数据库连接就创建一次服务器去数据的连接,而是从连接 "池 "里取一个连接出来,用完后就放回连接池里,这个连接差没有 ...

为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用_百度...
关于可靠性方面,也是有实验和数据支持的。对于数据库连接中断的情况,通过测试getConnection(),各种CP的不相同处理方法如下:(所有CP都配置了跟connectionTimeout类似的参数为5秒钟)HikariCP:等待5秒钟后,如果连接还是没有恢复,则抛出一个SQLExceptions 异常;后续的getConnection()也是一样处理;C3P0:...

java的3种数据库连接池用哪个好
1dbcp dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml 使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是...

Java ee:数据库连接池,MVC,session和cookie的特点及联系
数据库连接池,就是一次获取一定(比如10个或20个等)连接对象Connection,存储在集合中,然后用户获取连接直接从连接池中获取,close方法进行重写,关闭时,直接把连接添加回集合中。MVC是motel、view、和controller三层,层与层之间不直接连接,使用接口来实现解耦,其中view为视图层,controller为控制层,...

相似回答