常與Set 配合使用(因為Set集合沒有索引的概念)
方法:
reverse 將element反轉
hasNext 是否有element
next 取得現在索引的element
EX :
Set st = new HashSet();
st.add("1");
st.add("2");
Iterator it = st.iterator();
//或用while( it.hasNext() )
for(; it.hasNext() ;)
System.out.println( it.next() );
EX :
List list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
for (Iterator i = list.iterator();i.hasNext();) {
System.out.println(i.next());
}
2011年2月17日 星期四
讓ResultSet可以移動cursor(預設不可移動)
ResultSet rs = Statment.executeQuery();
rs.last();
int rowCount = rs.getRow();
在一般情況我們想使用rs.last();將cursor移到最後一行,
如此int rowCount = rs.getRow();這行就可以知道Table有幾筆資料(Rows),
但如果是用一般的ResultSet rs = Statement.executeQuery();
所取出的ResultSet是無法執行rs.last();來移動cursor ~"~(遺憾.....)
而且會拋出SQLException :Result set type is TYPE_FORWARD_ONLY
解決方法 :
在creat Statement物件時,就要指定輸出的ResultSet的型態,如下:
PreparedStatement prestm = con.prepareStatement(SQL,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
本範例用PreparedStatement ,其與Statement差不多,只是呼叫方法是改為
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs.last();
int rowCount = rs.getRow();
在一般情況我們想使用rs.last();將cursor移到最後一行,
如此int rowCount = rs.getRow();這行就可以知道Table有幾筆資料(Rows),
但如果是用一般的ResultSet rs = Statement.executeQuery();
所取出的ResultSet是無法執行rs.last();來移動cursor ~"~(遺憾.....)
而且會拋出SQLException :Result set type is TYPE_FORWARD_ONLY
解決方法 :
在creat Statement物件時,就要指定輸出的ResultSet的型態,如下:
PreparedStatement prestm = con.prepareStatement(SQL,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
本範例用PreparedStatement ,其與Statement差不多,只是呼叫方法是改為
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
Connection 取得DataBase的所有TABLE(Access為例)
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url, "", ""); //¨ú±oconnection
Dbmeta = con.getMetaData();
ResultSet rs = Dbmeta.getTables(null, null, null, new String[]{"TABLE"});
while(rs.next()){
printString(rs.getString(3));
}
}catch(Exception x){
System.out.println(x.getMessage());
}
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url, "", ""); //¨ú±oconnection
Dbmeta = con.getMetaData();
ResultSet rs = Dbmeta.getTables(null, null, null, new String[]{"TABLE"});
while(rs.next()){
printString(rs.getString(3));
}
}catch(Exception x){
System.out.println(x.getMessage());
}
訂閱:
文章 (Atom)