仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1242|回复: 19
打印 上一主题 下一主题

[学习教程] 来看一个通用的毗连池Bean

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:33:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表