0
我是JSF和bean的新手,我有一種情況,我需要從數據庫(oracle)獲取一些數據並在控制檯上顯示。我的第一個bean將從JSF中讀取數據並在第二個bean中調用相應的方法,並將包含數據的列表發回給bean。根據數據再次調用第二個bean中的另一個方法來獲取更多數據。最後數據將發佈給用戶。我的第二個bean將負責數據庫連接。這是我的代碼。 第一個bean,在jsf和javabean中維護會話
String ban = null,ban1 = null;
masterlist = (ArrayList<ThreadDTO>) getMbd().getBanOrCtn(dbean);
if (masterlist.isEmpty()) {
setSuccess(2);
return;
} else {
Iterator<ThreadDTO> itr = masterlist.iterator();
while (itr.hasNext()) {
ThreadDTO dto = (ThreadDTO) itr.next();
ban1 = dto.getWireless_ban();
if (ban1 != null) {
ban = ban1;
break;
}
}
ctnThreadList = (ArrayList<ThreadDTO>) getMbd().getThreads(dbean);
dbean.setSearchby("wireless_ban");
dbean.setSearchValue(ban);
banThreadList = (ArrayList<ThreadDTO>) getMbd().getThreads(dbean);
masterlist.clear();
masterlist = (ArrayList<ThreadDTO>) getMbd().removeDuplicates( ctnThreadList, banThreadList);
setResultlist((ArrayList<ThreadDTO>) getMbd().getApis(masterlist));
}
二Bean是,
public ArrayList<ThreadDTO> getBanOrCtn(SearchDetailsDTO db) throws Exception {
ArrayList<ThreadDTO> threadlist1 = new ArrayList<>();
//query here
try {
connection = getConnections(timeZone);//getting connection
stmt = connection.createStatement();
rs = stmt.executeQuery(banQuery);
if (!rs.isBeforeFirst()) {
System.out.println("empty resultset");
stmt.close();
rs.close();
connection.close();
} else {
while (rs.next()) {
ThreadDTO thread = new ThreadDTO();
//code to set the values
break;
}
}
} catch (SQLException sql) {
addErrorMessage(sql.getMessage());
}
return threadlist;
}
這未必是一個良好的編碼習慣,然而,這是工作的罰款單用戶,但我的要求是由多個用戶訪問。任何人都可以告訴我,我怎麼能做到這一點。提前致謝。
感謝您的快速回復。我仍然收到ExhaustedResultSet和Closed ResultSet錯誤。但這必須通過會話來區分嗎?請讓我知道如何超過這個錯誤。 – 2015-03-02 13:33:39