快速业务通道

关于EJB返回值的解决方案 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

关于EJB返回值的解决方案

时间:2010-12-21

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

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

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

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); } }

结论:不爽,不方便。

关于EJB返回值的解决方案(2)

时间:2010-12-21

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里去)

关于EJB返回值的解决方案(3)

时间:2010-12-21

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

好了,看例子吧:

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

  package example4;    import java.sql.*; import javax.sql.*; import sun.jdbc.rowset.*; import javax.naming.*; import javax.ejb.*;    public class CoffeesBean implements SessionBean {    private SessionContext sc = null; private Context ctx = null; private DataSource ds = null; public CoffeesBean () {} public void ejbCreate() throws CreateException {    try { ctx = new InitialContext(); ds = (DataSource)ctx.lookup(&quo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号