程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 關於EJB返回值的解決方案

關於EJB返回值的解決方案

編輯:JAVA編程入門知識
  相信很多人都有如此之困惑,得此解決方法不敢獨享,公之於眾,以利後來人。
  
  聲明:此方法的至於彭璐大俠,彭大俠可能不常上網,這麽好的方法也不告訴我等之小蝦米,只好代勞了。
  

  好了,不廢話了,有兩種方法:
  
   <!-- frame contents --> <!-- /frame contents -->   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.4jre owset.jar(和1的路徑對應就行)。
  3、右鍵您的工程文件,出現:property(大多數工具應該都有吧),加上rowset_path。
  4、在您的源文件中:import sun.jdbc.rowset.*;

  OK,搞定!下面就看您的了。(當然也可以把rowset壓到jre裡去)進入討論組討論。
  應該說rowset(其實主要是CachedRowSet)真的是個好東西,和ms ado的resultset和borland的tclientset非常相似,最大的好處是Cache功能!
  
  好了,看例子吧:
  
  /////////////server端/////////////
  

  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved