自己设计一个简单的的Java连接池(一)
2013-07-12 16:20
176 查看
虽说我们现在可以用第三方提供的java连接池,比如c3p0,dbcp等,这些用得也比较广泛,然而当我们舍弃这些连接池时,运用一些模式,也是可以实现自己的连接池的。
首先我们的清楚,设计连接池的目的,一是我们得保证多个连接,即保证每个线程都能取得不同的Connection。 二是得提供一个方法回收那些连接,使得处在等待状态的线程能够取得连接。以下是一个简单的连接池代码:
首先我们的清楚,设计连接池的目的,一是我们得保证多个连接,即保证每个线程都能取得不同的Connection。 二是得提供一个方法回收那些连接,使得处在等待状态的线程能够取得连接。以下是一个简单的连接池代码:
import java.sql.Connection; import java.sql.DriverManager; import java.util.ArrayList; import java.util.List; public class DbPool1 { //声明一个容器,放所有声明的连接Connection private static List<Connection> pool = new ArrayList<Connection>(); static{ try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql:///test?characterEncoding=UTf8"; for(int i=0;i<3;i++){ //创建三个连接 Connection con = DriverManager.getConnection(url,"root","root"); //将这个三个连接放到pool中去 pool.add(con); } System.err.println("连接是:"+pool); }catch(Exception e){ throw new RuntimeException(e.getMessage(),e); } } public static Connection getCon(){ synchronized (pool) { Connection con = pool.remove(0); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.err.println("还有:"+pool.size()); return con; } } //手工的还连接,这里要做的并不是去关闭自己的连接,而是还给连接池 public static void back(Connection con){ System.err.println("还连接:"+con); pool.add(con); } }注:此代码为王建老师上课所讲。
相关文章推荐
- 自己设计一个简单的的Java连接池(二)
- java 的简单应用--设计一个简单的变色登录界面
- 自己写的一个简单JAVA网络通讯录
- 自己编写的一个java简单的窗口实现两点求园面积
- Java实现一个简单的两人五子棋游戏(一) 系统设计
- 简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。
- 使用java的GUI设计一个简单的登陆界面(1)
- java中自己实现一个服务端对应多个客户端的简单代码
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- 【java学习记录】3.采用面向对象的方法设计一个能对复数(Complex)进行加、减、乘法的简单运算的程序
- 自己写的一个java采集有关的简单类
- 疯狂java讲义中的习题,设计一个简单的计算器。
- 用java设计实现一个简单的动作冒险类游戏
- [置顶] 一个简单的JAVA字符集过滤器实现 -vb2005xu 自己动手
- 用简单的驱动,自己写一个连接池
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- Java:一个分数类的简单设计
- 自己设计的一个简单高速加密算法
- 简单设计一个 Java 数据库工具类(第一版,以废弃)
- 自己写的一个简单的Java GUI源码