网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Rational Rose介绍材料.
.JavaCard开发教程之接口.
.一些无聊的代码之一:JAVA中的日.
.使用Hibernate进行对象的关系映射.
.《Java编程思想》(第二版)第08章.
.DOM文档操作和XML文件互相转换的.
.JBUILDER 5新增功能.
.decodeURI 方法.
.多线程在JAVA ME应用程序中的使用.
.选择 JSF不选Struts的十大理由.
.05年11月程序语言世界排行-Java居.
.Java基础知识 Java Web三层架构的.
.桌面系统的第二次战役--难解难分.
.Java的秘密武器:使用全屏幕模式.
.复制文件夹内容和删除整个文件夹.
.web应用分页技术.
.Think in java 3rd 中文版9.
.字符终端的管理.
.利用Ecipse生成Javadoc乱码解决方.
.Java 5.0 多线程编程实践.

关于EJB返回值的解决方案

发表日期:2008-1-5



  相信很多人都有如此之困惑,得此解决方法不敢独享,公之于众,以利后来人。

  声明:此方法的至于彭璐大侠,彭大侠可能不常上网,这麽好的方法也不告诉我等之小虾米,只好代劳了。

  好了,不废话了,有两种方法:

  1、用vector:

/**
* Finds all EJBeans with a balance greater than a given amount.
* Returns an Enumeration of found EJBean primary keys.
*
* @param balanceGreaterThan double Test Amount
* @return Enumeration EJBean Primary Keys
* @exception Javax.ejb.EJBException
* if there is a communications or systems failure
*/
public Enumeration ejbFindBigAccounts(double balanceGreaterThan) {
log("ejbFindBigAccounts (balance > " + balanceGreaterThan + ")");
Connection con = null;
PreparedStatement ps = null;

try {
con = getConnection();
ps = con.prepareStatement("select id from ejbAccounts where bal ?");
ps.setDouble(1, balanceGreaterThan);
ps.executeQuery();
ResultSet rs = ps.getResultSet();
Vector v = new Vector();
String pk;
while (rs.next()) {
pk = rs.getString(1);
v.addElement(pk);
}
return v.elements();
} catch (SQLException sqe) {
log("SQLException: " + sqe);
throw new EJBException (sqe);
} finally {
cleanup(con, ps);
}
}
结论:不爽,不方便。

2、RowSet
RowSet tutorial chapter :
http://developer.java.sun.com/developer/Books/JDBCTutorial/chapter5.Html

  rowset是个interface,需要有东西去实现它,sun的规范中给了三个class:cachedrowset,jdbcrowset,webrowset,假如去查jdk1.4 doc和j2skee1.2,有rowset,却没有那三个class,一般的开发工具(至少我的wsad)中也是这样,所以需要下jdbc2.0 opt-pack:
http://developer.java.sun.com/developer/earlyAccess/crs/

  下下来了再怎么办呢?

  装呗!

  怎么装呢?

  setup呀!

  没有呀?

  啊,没setup呀,sun干什么吃的,连setup都不做个,也太懒了吧。

  哎,我们确实是都被ms惯坏了,看到只有jar,没setup就没辙了,大家好好想想,java最大的特性是什么,就是它的类库可以自由扩充呀,现在明白该怎么做了吧:

  1、解包,得到rowset.jar,放在哪随您的意,别丢了就行。
  2、在您的开发工具中增加一个路径,如:ROWSET_PATH对应:d:\jdk1.4\jre\rowset.jar(和1的路径对应就行)。
  3、右键您的工程文件,出现:property(大多数工具应该都有吧),加上rowset_path。
  4、在您的源文件中:import sun.jdbc.rowset.*;

  OK,搞定!下面就看您的了。(当然也可以把rowset压到jre里去)进入讨论组讨论。


  应该说rowset(其实主要是CachedRowSet)真的是个好东西,和ms ado的resultset和borland的tclientset非常相似,最大的好处是Cache功能!

  好了,看例子吧:

  /////////////server端/////////////


上一篇:JXTA技术的设计目标和层次结构 人气:883
下一篇:JBuilder2005 Servlet开发之自启动 人气:599
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐