好了,不廢話了,有兩種方法:
<!-- 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端/////////////