??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩欧美精品一区二区 ,九色精品免费永久在线,亚洲国产精品日韩http://www.aygfsteel.com/luckyrobbie/category/8493.html<font size=-1>JAVA是蓝色的-</font> <!-- Start FastOnlineUsers.com --> <a ><script type="text/javascript" src="http://fastonlineusers.com/on2.php?d=www.aygfsteel.com/luckyrobbie"></script> online</a><!-- End FastOnlineUsers.com -->zh-cnWed, 28 Feb 2007 04:18:04 GMTWed, 28 Feb 2007 04:18:04 GMT60用decorate模式M张画http://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37638.htmlluckyrobbieluckyrobbieMon, 27 Mar 2006 08:56:00 GMThttp://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37638.htmlhttp://www.aygfsteel.com/luckyrobbie/comments/37638.htmlhttp://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37638.html#Feedback0http://www.aygfsteel.com/luckyrobbie/comments/commentRss/37638.htmlhttp://www.aygfsteel.com/luckyrobbie/services/trackbacks/37638.html我对decorate模式的理解:
1-首先要有一个InterfaceQ提供一个通用的方法;
2-其次有n多个class来实现这个接口中的方法,q些实现Ҏ在功能上应该是ƈ列的Q但不是必须的,从而可以根据需要decorate那个需要被修饰的初始对象?br />3-最后这些class都有一个带有Interface作ؓ参数的构造方法和一个Interface的属性,q样在构造的时候就可以取得那个需要修饰的对象的实例,然后在实现Interface的方法里面,首先实现修饰对象实例的修饰方法,然后再进行自qdecorateҎ?br />
Ҏq个x来画一张画Q?/p>
package  test;

public   interface  Painting  {
    
public   void  paint();
}


class  SunPainting  implements  Painting  {
    Painting painting 
=   null ;

    
public  SunPainting()  {
    }


    
public  SunPainting(Painting painting)  {
        
this .painting  =  painting;
    }


    
public   void  paint()  {
        
if  (painting  !=   null {
            painting.paint();
        }

        System.out.println(
" M一个太?img src="http://www.aygfsteel.com/images/dot.gif" /> " );
    }

}


class  CloudPainting  implements  Painting  {
    Painting painting 
=   null ;

    
public  CloudPainting()  {
    }


    
public  CloudPainting(Painting painting)  {
        
this .painting  =  painting;
    }


    
public   void  paint()  {
        
if  (painting  !=   null {
            painting.paint();
        }

        System.out.println(
" M一늙?img src="http://www.aygfsteel.com/images/dot.gif" /> " );
    }

}


class  LawnPainting  implements  Painting  {
    Painting painting 
=   null ;

    
public  LawnPainting()  {
    }


    
public  LawnPainting(Painting painting)  {
        
this .painting  =  painting;
    }


    
public   void  paint()  {
        
if  (painting  !=   null {
            painting.paint();
        }

        System.out.println(
" M一片草?img src="http://www.aygfsteel.com/images/dot.gif" /> " );
    }

}

再写D|试画ȝ代码:

package  test;

public   class  TestPainting  {
    
public   static   void  main(String[] args) {
        
new  SunPainting( new  CloudPainting( new  LawnPainting())).paint();
    }

}

试l果:

M一片草?img src="http://www.aygfsteel.com/images/dot.gif" />
M一늙?img src="http://www.aygfsteel.com/images/dot.gif" />
M一个太?img src="http://www.aygfsteel.com/images/dot.gif" />


 最后有个问题:Z么不直接定义一个画ȝc,然后把这些该怎么ȝ事情分别通过Ҏ来实现呢Q?那么什么情况下使用decorate模式更ؓ合适呢Q?/font>



luckyrobbie 2006-03-27 16:56 发表评论
]]>
用六大代码问题检验你的Java知识能力http://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37553.htmlluckyrobbieluckyrobbieMon, 27 Mar 2006 02:17:00 GMThttp://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37553.htmlhttp://www.aygfsteel.com/luckyrobbie/comments/37553.htmlhttp://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37553.html#Feedback0http://www.aygfsteel.com/luckyrobbie/comments/commentRss/37553.htmlhttp://www.aygfsteel.com/luckyrobbie/services/trackbacks/37553.html
        1 OutputStreamWriter out = ...
  2 java.sql.Connection conn = ...
  3 try { // ?br />  4 Statement stat = conn.createStatement();
  5 ResultSet rs = stat.executeQuery(
  6 "select uid, name from user");
  7 while (rs.next())
  8 {
  9 out.println("IDQ? + rs.getString("uid") // ?br />  10 "Q姓名:" + rs.getString("name"));
  11 }
  12 conn.close(); // ?br />  13 out.close();
  14 }
  15 catch(Exception ex) // ?br />  16 {
  17 ex.printStackTrace(); // _?br />  18 }

作ؓ一个JavaE序员,你至应该能够找Z个问题。但是,如果你不能找出全部六个问题,Ll阅L文?

本文讨论的不是Java异常处理的一般性原则,因ؓq些原则已经被大多数人熟知。我们要做的是分析各U可UCؓ“反例”(anti-patternQ的q背优秀~码规范的常见坏习惯Q帮助读者熟悉这些典型的反面例子Q从而能够在实际工作中敏锐地察觉和避免这些问题?

反例之一Q丢弃异?

代码Q?5?18行?

q段代码捕获了异常却不作M处理Q可以算得上Java~程中的杀手。从问题出现的频J程度和害E度来看Q它也许可以和C/C++E序的一个恶名远播的问题相提q论??不检查缓冲区是否已满?

如果你看Cq种丢弃Q而不是抛出)异常的情况,可以癑ֈ之九十九地肯定代码存在问题(在极数情况下,q段代码有存在的理由Q但最好加上完整的注释Q以免引起别解)?

q段代码的错误在于,异常Q几乎)L意味着某些事情不对劲了Q或者说臛_发生了某些不d的事情,我们不应该对E序发出的求救信号保持沉默和无动于衷。调用一下printStackTrace不上“处理异常”?

不错Q调用printStackTrace对调试程序有帮助Q但E序调试阶段l束之后QprintStackTrace׃应再在异常处理模块中担负主要责Q了?

丢弃异常的情形非常普遍。打开JDK的ThreadDeathcȝ文档Q可以看C面这D说明:“特别地Q虽然出现ThreadDeath是一U‘正常的情Ş’,但ThreadDeathcLError而不是Exception的子c,因ؓ许多应用会捕h有的Exception然后丢弃它不再理睬?

”这D话的意思是Q虽然ThreadDeath代表的是一U普通的问题Q但鉴于许多应用会试图捕h有异常然后不予以适当的处理,所以JDK把ThreadDeath定义成了Error的子c,因ؓErrorcM表的是一般的应用不应该去捕获的严重问题。可见,丢弃异常q一坏习惯是如此常见Q它甚至已经影响CJava本n的设计?

那么Q应该怎样Ҏ呢?主要有四个选择Q?

1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个h或进行其他一些处理,要根据具体的情Ş定应该采取的动作。再ơ说明,调用printStackTrace不上已l“处理好了异常”?

2、重新抛出异常。处理异常的代码在分析异怹后,认ؓ自己不能处理它,重新抛出异常也不׃ؓ一U选择?

3、把该异常{换成另一U异常。大多数情况下,q是指把一个低U的异常转换成应用的异常(其含义更Ҏ被用户了解的异常Q?

4、不要捕获异常?

l论一Q既然捕获了异常Q就要对它进行适当的处理。不要捕获异怹后又把它丢弃Q不予理睬?

反例之二Q不指定具体的异?

代码Q?5行?

许多时候h们会被这样一U“美妙的”想法吸引:用一个catch语句捕获所有的异常。最常见的情形就是用catch(Exception

ex)语句。但实际上,在绝大多数情况下Q这U做法不值得提倡。ؓ什么呢Q?

要理解其原因Q我们必d一下catch语句的用途。catch语句表示我们预期会出现某U异常,而且希望能够处理该异常。异常类的作用就是告诉Java~译器我们想要处理的是哪一U异常?

׃l大多数异常都直接或间接从java.lang.ExceptionzQcatch(Exception ex)q当于说我们想要处理几乎所有的异常?

再来看看前面的代码例子。我们真正想要捕L异常是什么呢Q最明显的一个是SQLExceptionQ这是JDBC操作中常见的异常。另一个可能的异常是IOExceptionQ因为它要操作OutputStreamWriter?

昄Q在同一个catch块中处理q两U截然不同的异常是不合适的。如果用两个catch块分别捕获SQLException和IOExceptionp好多了。这是_catch语句应当量指定具体的异常类型,而不应该指定늛范围太广的ExceptioncR?

另一斚wQ除了这两个特定的异常,q有其他许多异常也可能出现。例如,如果׃某种原因QexecuteQueryq回了nullQ该怎么办?{案是让它们l箋抛出Q即不必捕获也不必处理。实际上Q我们不能也不应该去捕获可能出现的所有异常,E序的其他地方还有捕获异常的Z直至最后由JVM处理?

l论二:在catch语句中尽可能指定具体的异常类型,必要时用多个catch。不要试囑֤理所有可能出现的异常?

反例之三Q占用资源不释放

代码Q??14行?

异常改变了程序正常的执行程。这个道理虽然简单,却常常被Z忽视。如果程序用C文g、Socket、JDBCq接之类的资源,即遇到了异常,也要正确释放占用的资源。ؓ此,Java提供了一个简化这cL作的关键词finally?

finally是样好东西:不管是否出现了异常,Finally保证在try/catch/finally块结束之前,执行清理d的代码L有机会执行。遗憄是有些h却不习惯使用finally?

当然Q编写finally块应当多加小心,特别是要注意在finally块之内抛出的异常??q是执行清理d的最后机会,量不要再有难以处理的错误?

l论三:保证所有资源都被正释放。充分运用finally关键词?

反例之四Q不说明异常的详l信?

代码Q??18行?

仔细观察q段代码Q如果@环内部出C异常Q会发生什么事情?我们可以得到_的信息判断@环内部出错的原因吗?不能。我们只能知道当前正在处理的cd生了某种错误Q但却不能获得Q何信息判断导致当前错误的原因?

printStackTrace的堆栈跟t功能显C出E序q行到当前类的执行流E,但只提供了一些最基本的信息,未能说明实际D错误的原因,同时也不易解诅R?

因此Q在出现异常Ӟ最好能够提供一些文字信息,例如当前正在执行的类、方法和其他状态信息,包括以一U更适合阅读的方式整理和l织printStackTrace提供的信息?

l论四:在异常处理模块中提供适量的错误原因信息,l织错误信息使其易于理解和阅诅R?

反例之五Q过于庞大的try?

代码Q??14行?

l常可以看到有h把大量的代码攑օ单个try块,实际上这不是好习惯。这U现象之所以常见,原因在于有些h囄事,不愿花时间分析一大块代码中哪几行代码会抛出异常、异常的具体cd是什么。把大量的语句装入单个巨大的try块就象是出门旅游时把所有日常用品塞入一个大子Q虽然东西是带上了,但要扑և来可不容易?

一些新手常常把大量的代码放入单个try块,然后再在catch语句中声明ExceptionQ而不是分d个可能出现异常的D落q分别捕获其异常。这U做法ؓ分析E序抛出异常的原因带来了困难Q因Z大段代码中有太多的地方可能抛出Exception?

l论五:量减小try块的体积?

反例之六Q输出数据不完整

代码Q??11行?

不完整的数据是JavaE序的隐形杀手。仔l观察这D代码,考虑一下如果@环的中间抛出了异常,会发生什么事情。@环的执行当然是要被打断的Q其ơ,catch块会执行??p些,再也没有其他动作了?

已经输出的数据怎么办?使用q些数据的h或设备将收到一份不完整的(因而也是错误的Q数据,却得不到M有关q䆾数据是否完整的提C。对于有些系l来_数据不完整可能比pȝ停止q行带来更大的损失?

较ؓ理想的处|办法是向输备写一些信息,声明数据的不完整性;另一U可能有效的办法是,先缓冲要输出的数据,准备好全部数据之后再一ơ性输出?

l论六:全面考虑可能出现的异总及这些异常对执行程的媄响?

改写后的代码

Ҏ上面的讨论,下面l出改写后的代码。也许有Z说它E微有点?嗦,但是它有了比较完备的异常处理机制?


OutputStreamWriter out = ...
  java.sql.Connection conn = ...
  try {
   Statement stat = conn.createStatement();
   ResultSet rs = stat.executeQuery("select uid, name from user");
   while (rs.next()){
    out.println("IDQ? + rs.getString("uid") + "Q姓? "+ rs.getString("name"));
   }
  }
  catch(SQLException sqlex)
  {
   out.println("警告Q数据不完整");
   throw new ApplicationException("d数据时出现SQL错误", sqlex);
  }
  catch(IOException ioex)
  {
   throw new ApplicationException("写入数据时出现IO错误", ioex);
  }
  finally
  {
   if (conn != null) {
    try {
     conn.close();
    }
    catch(SQLException sqlex2)
    {
     System.err(this.getClass().getName() + ".mymethod - 不能关闭数据库连?" + sqlex2.toString());
    }
   }
   if (out != null){
    try {
     out.close();
    }
    catch(IOException ioex2)
    {
     System.err(this.getClass().getName() + ".mymethod - 不能关闭输出文g" + ioex2.toString());
    }
   }
  }




本文的结Z是放之四L准的教条Q有时常识和l验才是最好的老师。如果你对自q做法没有癑ֈ之百的信心,务必加上详细、全面的注释?

一斚wQ不要笑话这些错误,不妨问问你自己是否真地彻底摆׃q些坏习惯。即使最有经验的E序员偶也会误入歧途,原因很简单,因ؓ它们确实实带来了“方侎쀝。所有这些反例都可以看作Java~程世界的恶,它们丽动hQ无孔不入,时刻诱惑着你。也许有Z认ؓq些都属于鸡皮蒜毛的事Q不x齿,但请CQ勿以恶而ؓ之,勿以善小而不为?

luckyrobbie 2006-03-27 10:17 发表评论
]]>
JSP彩色验证?/title><link>http://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37552.html</link><dc:creator>luckyrobbie</dc:creator><author>luckyrobbie</author><pubDate>Mon, 27 Mar 2006 02:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37552.html</guid><wfw:comment>http://www.aygfsteel.com/luckyrobbie/comments/37552.html</wfw:comment><comments>http://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37552.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/luckyrobbie/comments/commentRss/37552.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/luckyrobbie/services/trackbacks/37552.html</trackback:ping><description><![CDATA[ <div> <div> <h2> <font face="Arial" size="3">JSP彩色验证?/font> </h2> <a > <u> <font face="Arial" color="#0000ff">xiaohanne</font> </u> </a> <font face="Arial"> 发表?004-06-01 作?xiaohanne 评h:13/6 评论?5 点击?5229 [</font> <a > <u> <font face="Arial" color="#0000ff">收藏</font> </u> </a> <font face="Arial">] </font> </div> <div> <div> <font face="Arial"> </font> </div> <div> <font face="Arial">摘要Q?br /><br /><br /><br />本文Matrix怹镜像Q?/font> <a > <u> <font face="Arial" color="#0000ff">http://www.matrix.org.cn/resource/article/0/910.html</font> </u> </a> <font face="Arial"> <br />说明Q本文可能由Matrix原创Q也可能由Matrix的会员整理,或者由<br />Matrix的Crawler在全球知名Java或者其他技术相关站Ҏ取ƈ怹<br />保留镜像QMatrix会保留所有原来的出处URLQƈ在显著地方作明,<br />如果你发觉出处URL有误Q请联系MatrixҎ.<br /></font> </div> </div> <div> <font face="Arial">生成?个随机数字和杂ؕ背景的图片,数字和背景颜色会改变Q服务器端刷斎ͼ用history.go(-1)也会变)<br />原型参考ALIBABA  </font> <a > <u> <font face="Arial" color="#800080">http://china.alibaba.com/member/showimage</font> </u> </a> <br /> <br /> <font face="Arial">------------产生验证码图片的文g-----image.jsp-------------------------------------------<br /><br /><%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %><br /><%!<br />Color getRandColor(int fc,int bc){//l定范围获得随机颜色<br />        Random random = new Random();<br />        if(fc>255) fc=255;<br />        if(bc>255) bc=255;<br />        int r=fc+random.nextInt(bc-fc);<br />        int g=fc+random.nextInt(bc-fc);<br />        int b=fc+random.nextInt(bc-fc);<br />        return new Color(r,g,b);<br />        }<br />%><br /><%<br />//讄面不缓?br />response.setHeader("Pragma","No-cache");<br />response.setHeader("Cache-Control","no-cache");<br />response.setDateHeader("Expires", 0);<br /><br />// 在内存中创徏图象<br />int width=60, height=20;<br />BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);<br /><br />// 获取囑Ş上下?br />Graphics g = image.getGraphics();<br /><br />//生成随机c?br />Random random = new Random();<br /><br />// 讑֮背景?br />g.setColor(getRandColor(200,250));<br />g.fillRect(0, 0, width, height);<br /><br />//讑֮字体<br />g.setFont(new Font("Times New Roman",Font.PLAIN,18));<br /><br />//画边?br />//g.setColor(new Color());<br />//g.drawRect(0,0,width-1,height-1);<br /><br /><br />// 随机产生155条干扰线Q图象中的认证码不易被其它E序探测?br />g.setColor(getRandColor(160,200));<br />for (int i=0;i<155;i++)<br />{<br />        int x = random.nextInt(width);<br />        int y = random.nextInt(height);<br />        int xl = random.nextInt(12);<br />        int yl = random.nextInt(12);<br />        g.drawLine(x,y,x+xl,y+yl);<br />}<br /><br />// 取随Z生的认证?4位数?<br />String sRand="";<br />for (int i=0;i<4;i++){<br />    String rand=String.valueOf(random.nextInt(10));<br />    sRand+=rand;<br />    // 认证码昄到图象中<br />    g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近Q所以只能直接生?br />    g.drawString(rand,13*i+6,16);<br />}<br /><br />// 认证码存入SESSION<br />session.setAttribute("rand",sRand);<br /><br /><br />// 图象生效<br />g.dispose();<br /><br />// 输出图象到页?br />ImageIO.write(image, "JPEG", response.getOutputStream());<br /><br /><br />%> <br /><br />---------------使用验证码图片的文g---------a.jsp------------------------------------<br /><br /><%@ page contentType="text/html;charset=gb2312" %><br /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br /><html><br /><head><br /><title>认证码输入页?lt;/title><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <br /><META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <br /><META HTTP-EQUIV="Expires" CONTENT="0"> <br /></head><br /><body><br /><form method=post action="check.jsp"><br /><table><br /><tr><br /><td align=left>pȝ产生的认证码Q?lt;/td><br /><td><img border=0 src="image.jsp"></td><br /></tr><br /><tr><br /><td align=left>输入上面的认证码Q?lt;/td><br /><td><input type=text name=rand maxlength=4 value=""></td><br /></tr><br /><tr><br /><td colspan=2 align=center><input type=submit value="提交?></td><br /></tr><br /></form><br /></body><br /></html><br /><br />-----------------验证的页?---------check.jsp<br /><br /><%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><br /><html><br /><head><br /><title>认证码验证页?lt;/title><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <br /><META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <br /><META HTTP-EQUIV="Expires" CONTENT="0"> <br /></head><br /><br /><body><br /><% <br />String rand = (String)session.getAttribute("rand");<br />String input = request.getParameter("rand");<br />%><br />pȝ产生的认证码为: <%= rand %><br><br />您输入的认证码ؓQ?<%= input %><br><br /><br><br /><%<br />  if (rand.equals(input)) {<br />%><br /><font color=green>输入相同Q认证成功!</font><br /><%<br />  } else {<br />%><br /><font color=red>输入不同Q认证失败!</font><br /><%<br />  }<br />%><br /></body><br /></html><br /></font> </div> </div> <img src ="http://www.aygfsteel.com/luckyrobbie/aggbug/37552.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/luckyrobbie/" target="_blank">luckyrobbie</a> 2006-03-27 10:13 <a href="http://www.aygfsteel.com/luckyrobbie/archive/2006/03/27/37552.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Databases and JDBC Drivershttp://www.aygfsteel.com/luckyrobbie/archive/2006/03/21/36575.htmlluckyrobbieluckyrobbieTue, 21 Mar 2006 02:55:00 GMThttp://www.aygfsteel.com/luckyrobbie/archive/2006/03/21/36575.htmlhttp://www.aygfsteel.com/luckyrobbie/comments/36575.htmlhttp://www.aygfsteel.com/luckyrobbie/archive/2006/03/21/36575.html#Feedback0http://www.aygfsteel.com/luckyrobbie/comments/commentRss/36575.htmlhttp://www.aygfsteel.com/luckyrobbie/services/trackbacks/36575.htmlDatabases and JDBC Drivers

This page lists the most current information about databases and some of their JDBC drivers that can be used for import data or extract XML schema from database structure features. Information about what file(s) to load in the Preferences->Database->JDBC Drivers as well as information about driver classes and URL formats are also provided. An extensive list of JDBC drivers is also available at JDBC section at Sun Microsystems.

Oracle 10.2.0.1.0: Oracle JDBC Driver 10.1.0.2.0

Files: ojdbc14.jar

Driver Class: oracle.jdbc.OracleDriver

URL: jdbc:oracle:thin:@<host>:<port1521>:<sid>

jdbc:oracle:oci:@<host>:<port1521>:<sid>

OBS: The same driver file used for both thin and OCI connections.
 Download Driver

 

DB2 8.2: IBM DB2 JDBC Universal Driver 2.3.63

Files: db2jcc.jar, db2jcc_license_cu.jar

Driver Class: com.ibm.db2.jcc.DB2Driver

URL: jdbc:db2://<host>:<port50000>/<database>
 Download Driver

 

SQL Server 2000 - 8.00.2039: SQL Server Driver 2.2.0040

Files: mssqlserver.jar, msbase.jar, msutil.jar

Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver

URL: jdbc:microsoft:sqlserver://<host>:<port1433>;DatabaseName=<database>
 Download Driver

 

Sybase ASE 12.5.3: jConnect 6.0 Build 25308

Files: jconn3.jar

Driver Class: com.sybase.jdbc3.jdbc.SybDriver

URL: jdbc:sybase:Tds:<host>:<port2048>/<database>
 Download Driver

 

Informix 9.40: Informix 2.21.JC6

Files: ifxjdbc.jar

Driver Class: com.informix.jdbc.IfxDriver

URL: jdbc:informix-sqli://<host>:<port>/<database>:informixserver=<dbservername>
 Download Driver

 

MySQL 4.1.12: mysql-connector-java-3.1.8

Files: mysql-connector-java-3.1.8-bin.jar

Driver Class: com.mysql.jdbc.Driver

URL: jdbc:mysql://<host>:<port3306>/<database>
 Download Driver

 

MySQL 5.0.2: mysql-connector-java-3.1.5-gamma

Files: mysql-connector-java-3.1.5-gamma-bin.jar

Driver Class: com.mysql.jdbc.Driver

URL: jdbc:mysql://<host>:<port3306>/<database>
 Download Driver

 

PostgeSQL 7.4.8: PostgreSQL 7.4.4 JDBC2 with SSL

Files: pg74.215.jdbc2ee.jar

Driver Class: org.postgresql.Driver

URL: jdbc:postgresql://<host>:<port5432>/<database>
 Download Driver

 

MaxDB 7.4.3: SAP DB JDBC Driver 7.4.4

Files: sapdbc.jar

Driver Class: com.sap.dbtech.jdbc.DriverSapDB

URL: jdbc:sapdb://<host>:<port>/<database>
 Download Driver

 

FrontBase 3.6.21: FBJDriver 2.4.7

Files: frontbasejdbc.jar

Driver Class: com.frontbase.jdbc.FBJDriver

URL: jdbc:FrontBase://<host>:<port>/<database>
 Download Driver

 

Sybase ASA 9.0.2.2452: jConnect 6.0 Build 25308

Files: jconn3.jar

Driver Class: com.sybase.jdbc3.jdbc.SybDriver

URL: jdbc:sybase:Tds:<host>:<port2638>/<database>
 Download Driver

 

JDataStore 6.7.25 Embedded: DataStore Driver 6.0

Files: jdsserver.jar

Driver Class: com.borland.datastore.jdbc.DataStoreDriver

URL: jdbc:borland:dslocal:<file>
 Download Driver

 

JDataStore 6.7.25 Server: DataStore Driver 6.0

Files: jdsremote.jar

Driver Class: com.borland.datastore.jdbc.DataStoreDriver

URL: jdbc:borland:dslocal:<file>
 Download Driver

 

Cache 5.0 Server: InterSystems Cache JDBC 5.0

Files: CacheDB.jar

Driver Class: com.intersys.jdbc.CacheDriver

URL: jdbc:Cache://<host>:<port>/<namespace>
 Download Driver

luckyrobbie 2006-03-21 10:55 发表评论
]]>
一个取到ResultSet后返回Iterator的例?/title><link>http://www.aygfsteel.com/luckyrobbie/archive/2006/03/15/35446.html</link><dc:creator>luckyrobbie</dc:creator><author>luckyrobbie</author><pubDate>Wed, 15 Mar 2006 08:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/luckyrobbie/archive/2006/03/15/35446.html</guid><wfw:comment>http://www.aygfsteel.com/luckyrobbie/comments/35446.html</wfw:comment><comments>http://www.aygfsteel.com/luckyrobbie/archive/2006/03/15/35446.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/luckyrobbie/comments/commentRss/35446.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/luckyrobbie/services/trackbacks/35446.html</trackback:ping><description><![CDATA[<FONT face=Arial size=2>在Jdon.com里面看到的,觉得很值得借鉴<BR>原文Q?A >http://www.jdon.com/jive/thread.jsp?forum=16&thread=302</A><BR><BR>看下面比较:</FONT><BR><FONT face=Arial size=2> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG id=Codehighlighter1_23_167_Open_Image onclick="this.style.display='none'; Codehighlighter1_23_167_Open_Text.style.display='none'; Codehighlighter1_23_167_Closed_Image.style.display='inline'; Codehighlighter1_23_167_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_23_167_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_167_Closed_Text.style.display='none'; Codehighlighter1_23_167_Open_Image.style.display='inline'; Codehighlighter1_23_167_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> List getUsers() </SPAN><SPAN id=Codehighlighter1_23_167_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_23_167_Open_Text><SPAN style="COLOR: #000000">{ <BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>  ResultSet rs </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> userDbQuery();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>  List retval </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> ArrayList();<BR><IMG id=Codehighlighter1_111_148_Open_Image onclick="this.style.display='none'; Codehighlighter1_111_148_Open_Text.style.display='none'; Codehighlighter1_111_148_Closed_Image.style.display='inline'; Codehighlighter1_111_148_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_111_148_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_111_148_Closed_Text.style.display='none'; Codehighlighter1_111_148_Open_Image.style.display='inline'; Codehighlighter1_111_148_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000"> (rs.next()) </SPAN><SPAN id=Codehighlighter1_111_148_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_111_148_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>    retval.add(rs.getString(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">));<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>  }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> retval;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV>上面是个我们采取q回Collection后最常用的方法,ResultSet中的用户名加入List再返回,昄q很耗费内存?BR><BR>使用Iteratorq回Q?BR></FONT><FONT face=Arial size=2> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG id=Codehighlighter1_27_631_Open_Image onclick="this.style.display='none'; Codehighlighter1_27_631_Open_Text.style.display='none'; Codehighlighter1_27_631_Closed_Image.style.display='inline'; Codehighlighter1_27_631_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_27_631_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_27_631_Closed_Text.style.display='none'; Codehighlighter1_27_631_Open_Image.style.display='inline'; Codehighlighter1_27_631_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> Iterator getUsers() </SPAN><SPAN id=Codehighlighter1_27_631_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_27_631_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff">final</SPAN><SPAN style="COLOR: #000000"> ResultSet rs </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> userDbQuery();<BR><IMG id=Codehighlighter1_93_629_Open_Image onclick="this.style.display='none'; Codehighlighter1_93_629_Open_Text.style.display='none'; Codehighlighter1_93_629_Closed_Image.style.display='inline'; Codehighlighter1_93_629_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_93_629_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_93_629_Closed_Text.style.display='none'; Codehighlighter1_93_629_Open_Image.style.display='inline'; Codehighlighter1_93_629_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> Iterator() </SPAN><SPAN id=Codehighlighter1_93_629_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_93_629_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #0000ff">private</SPAN><SPAN style="COLOR: #000000"> Object next;<BR><IMG id=Codehighlighter1_150_320_Open_Image onclick="this.style.display='none'; Codehighlighter1_150_320_Open_Text.style.display='none'; Codehighlighter1_150_320_Closed_Image.style.display='inline'; Codehighlighter1_150_320_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_150_320_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_150_320_Closed_Text.style.display='none'; Codehighlighter1_150_320_Open_Image.style.display='inline'; Codehighlighter1_150_320_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> hasNext() </SPAN><SPAN id=Codehighlighter1_150_320_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_150_320_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_178_291_Open_Image onclick="this.style.display='none'; Codehighlighter1_178_291_Open_Text.style.display='none'; Codehighlighter1_178_291_Closed_Image.style.display='inline'; Codehighlighter1_178_291_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_178_291_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_178_291_Closed_Text.style.display='none'; Codehighlighter1_178_291_Open_Image.style.display='inline'; Codehighlighter1_178_291_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (next </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN id=Codehighlighter1_178_291_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_178_291_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_207_246_Open_Image onclick="this.style.display='none'; Codehighlighter1_207_246_Open_Text.style.display='none'; Codehighlighter1_207_246_Closed_Image.style.display='inline'; Codehighlighter1_207_246_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_207_246_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_207_246_Closed_Text.style.display='none'; Codehighlighter1_207_246_Open_Image.style.display='inline'; Codehighlighter1_207_246_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>          </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000"> rs.next()) </SPAN><SPAN id=Codehighlighter1_207_246_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_207_246_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>            </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">; <BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>          }</SPAN></SPAN><SPAN style="COLOR: #000000"> <BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>          next </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> rs.getString(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>      }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_350_515_Open_Image onclick="this.style.display='none'; Codehighlighter1_350_515_Open_Text.style.display='none'; Codehighlighter1_350_515_Closed_Image.style.display='inline'; Codehighlighter1_350_515_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_350_515_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_350_515_Closed_Text.style.display='none'; Codehighlighter1_350_515_Open_Image.style.display='inline'; Codehighlighter1_350_515_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> Object next() </SPAN><SPAN id=Codehighlighter1_350_515_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_350_515_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_377_433_Open_Image onclick="this.style.display='none'; Codehighlighter1_377_433_Open_Text.style.display='none'; Codehighlighter1_377_433_Closed_Image.style.display='inline'; Codehighlighter1_377_433_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_377_433_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_377_433_Closed_Text.style.display='none'; Codehighlighter1_377_433_Open_Image.style.display='inline'; Codehighlighter1_377_433_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000"> hasNext()) </SPAN><SPAN id=Codehighlighter1_377_433_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_377_433_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>          </SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> NoSuchElementException();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        String retval </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> next;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        next </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> retval;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>      }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_545_624_Open_Image onclick="this.style.display='none'; Codehighlighter1_545_624_Open_Text.style.display='none'; Codehighlighter1_545_624_Closed_Image.style.display='inline'; Codehighlighter1_545_624_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_545_624_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_545_624_Closed_Text.style.display='none'; Codehighlighter1_545_624_Open_Image.style.display='inline'; Codehighlighter1_545_624_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> remove() </SPAN><SPAN id=Codehighlighter1_545_624_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_545_624_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> UnsupportedOperationException (</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">no remove allowed</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>      }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>   }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>q个Javabean只是做了一个指针传递作用,调用本Javabean的指针传递到ResultSet,q样既提高了效率Q节U了内存Q又降低了偶合性,q是堪称中间件典型的C?/FONT><BR><BR><img src ="http://www.aygfsteel.com/luckyrobbie/aggbug/35446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/luckyrobbie/" target="_blank">luckyrobbie</a> 2006-03-15 16:56 <a href="http://www.aygfsteel.com/luckyrobbie/archive/2006/03/15/35446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӳ</a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ǡ</a>| <a href="http://" target="_blank">ï</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank">Ƕ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӽ</a>| <a href="http://" target="_blank">ǭ</a>| <a href="http://" target="_blank">ػ</a>| <a href="http://" target="_blank">ᶼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʲ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">н</a>| <a href="http://" target="_blank">Ī</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ѭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">ϸ</a>| <a href="http://" target="_blank">ٹ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>