仓酷云

标题: 来看一个通用的毗连池Bean [打印本页]

作者: 变相怪杰    时间: 2015-1-18 11:33
标题: 来看一个通用的毗连池Bean
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
//毗连BeanConnectionBean.java

packagecom.pool;
importjava.io.Serializable;
importjava.sql.*;
publicclassConnectionBeanimplementsjava.io.Serializable
{
privateConnectionvConnection=null;
privatebooleanbUseState=false;
publicConnectionBean(){}
publicConnectionBean(Connectionconnection)
{
 if(connection!=null)
 {
 vConnection=connection;
 }
}
publicConnectiongetConnection()
{
 returnvConnection;
}
publicvoidsetConnection(Connectionconnection)
{
 vConnection=connection;
}
publicvoidsetUseState(booleanbUseState)
{
 this.bUseState=bUseState;
}
publicbooleangetUseState()
{
 returnbUseState;
}
publicvoidclose()
{
 try
 {
 vConnection.close();
 }
 catch(SQLExceptionsqlException)
 {
 System.err.println(sqlException.getMessage());
 }
}
}

//毗连池

PoolBean.java

packagecom.pool;
importjava.io.Serializable;
importjava.sql.*;
importjava.util.*;
importcom.pool.ConnectionBean;
publicclassPoolBeanimplementsjava.io.Serializable
{
privateStringstrDriver=null;
privateStringstrURL=null;
privateintiSize=0;
privateStringstrUserName="";
privateStringstrPassword="";
privateConnectionBeanvConnectionBean=null;
privateVectorvPool=null;
publicPoolBean(){}
publicvoidsetDriver(StringstrDriver)
{
 if(strDriver!=null)
 {
 this.strDriver=strDriver;
 }
}
publicStringgetDriver()
{
 returnstrDriver;
}
publicvoidsetURL(StringstrURL)
{
 if(strURL!=null)
 {
 this.strURL=strURL;
 }
}
publicStringgetURL()
{
 returnstrURL;
}
publicvoidsetSize(intiSize)
{
 if(iSize>1)
 {
 this.iSize=iSize;
 }
}
publicintgetSize()
{
 returniSize;
}
publicStringgetUserName()
{
 returnstrUserName;
}
publicvoidsetUserName(StringstrUserName)
{
 if(strUserName!=null)
 {
 this.strUserName=strUserName;
 }
}
publicvoidsetPassword(StringstrPassword)
{
 if(strPassword!=null)
 {
 this.strPassword=strPassword;
 }
}
publicStringgetPassword()
{
 returnstrPassword;
}
publicvoidsetConnectionBean(ConnectionBeanvConnectionBean)
{
 if(vConnectionBean!=null)
 {
 this.vConnectionBean=vConnectionBean;
 }
}
publicConnectionBeangetConnectionBean()throwsException
{
 ConnectionvConnection=getConnection();
 ConnectionBeanvConnectionBean=newConnectionBean(vConnection);
 vConnectionBean.setUseState(true);
 returnvConnectionBean;
}
privateConnectioncreateConnection()throwsException
{
 ConnectionvConnection=null;
 vConnection=DriverManager.getConnection(strURL,strUserName,strPassword);
 returnvConnection;
}
publicsynchronizedvoidinitializePool()throwsException
{
 if(strDriver==null)
 {
 thrownewException("没有供应驱动程序称号!");
 }
 if(strURL==null)
 {
 thrownewException("没有供应URL!");
 }
 if(iSize<1)
 {
 thrownewException("毗连池巨细小于1!");
 }
 try
 {
 Class.forName(strDriver);
 for(intiIndex=0;iIndex<iSize;iIndex++)
 {
  ConnectionvConnection=createConnection();
  if(vConnection!=null)
  {
  ConnectionBeanvConnectionBean=newConnectionBean(vConnection);
  addConnection(vConnectionBean);
  }
 }
 }
 catch(ExceptioneException)
 {
 System.err.println(eException.getMessage());
 thrownewException(eException.getMessage());
 }
}
privatevoidaddConnection(ConnectionBeanvConnectionBean)
{
 if(vPool==null)
 {
 vPool=newVector(iSize);
 }
 vPool.addElement(vConnectionBean);
}
publicsynchronizedvoidreleaseConnection(ConnectionvConnection)
{
 for(intiIndex=0;iIndex<vPool.size();iIndex++)
 {
 ConnectionBeanvConnectionBean=(ConnectionBean)vPool.elementAt(iIndex);
 if(vConnectionBean.getConnection()==vConnection)
 {
  System.err.println("开释第"+iIndex+"个毗连!");
  vConnectionBean.setUseState(false);
  break;
 }
 }
}
publicsynchronizedConnectiongetConnection()throwsException
{
 ConnectionBeanvConnectionBean=null;
 for(intiIndex=0;iIndex<vPool.size();iIndex++)
 {
 vConnectionBean=(ConnectionBean)vPool.elementAt(iIndex);
 if(vConnectionBean.getUseState()==false)
 {
  vConnectionBean.setUseState(true);
  ConnectionvConnection=vConnectionBean.getConnection();
  returnvConnection;
 }
 }
 try
 {
 ConnectionvConnection=createConnection();
 vConnectionBean=newConnectionBean(vConnection);
 vConnectionBean.setUseState(true);
 vPool.addElement(vConnectionBean);
 }
 catch(ExceptioneException)
 {
 System.err.println(eException.getMessage());
 thrownewException(eException.getMessage());
 }
 returnvConnectionBean.getConnection();
}
publicsynchronizedvoidemptyPool()
{
 for(intiIndex=0;iIndex<vPool.size();iIndex++)
 {
 System.err.println("封闭第"+iIndex+"JDBC毗连!");
 ConnectionBeanvConnectionBean=(ConnectionBean)vPool.elementAt(iIndex);
 if(vConnectionBean.getUseState()==false)
 {
  vConnectionBean.close();
 }
 else
 {
  try
  {
  java.lang.Thread.sleep(20000);
  vConnectionBean.close();
  }
  catch(InterruptedExceptioninterruptedException)
  {
  System.err.println(interruptedException.getMessage());
  }
 }
 }
}
}
用JSDK141下编译经由过程

java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),
作者: admin    时间: 2015-1-21 10:08
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 不帅    时间: 2015-1-23 23:40
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 简单生活    时间: 2015-1-31 20:42
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 山那边是海    时间: 2015-2-5 13:07
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 愤怒的大鸟    时间: 2015-2-6 11:03
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 深爱那片海    时间: 2015-2-16 00:38
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 金色的骷髅    时间: 2015-3-4 19:24
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 再现理想    时间: 2015-3-5 14:48
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 兰色精灵    时间: 2015-3-10 12:36
是一种使用者不需花费很多时间学习的语言
作者: 变相怪杰    时间: 2015-3-17 06:38
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 再见西城    时间: 2015-3-19 19:49
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 飘灵儿    时间: 2015-4-1 06:08
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 莫相离    时间: 2015-4-3 02:53
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 因胸联盟    时间: 2015-4-7 20:39
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 精灵巫婆    时间: 2015-4-20 18:27
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 灵魂腐蚀    时间: 2015-4-24 12:45
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 老尸    时间: 2015-4-26 20:11
是一种为 Internet发展的计算机语言
作者: 乐观    时间: 2015-4-28 21:45
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 小妖女    时间: 2015-5-8 22:06
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2