問題是,在顯示ResultSet
和<h:dataTable>
後,連接保持打開狀態。如果我關閉它,它也會關閉ResultSet
。我正在考慮將ResultSet
數據複製到一些HashMap
/ArrayList
組合中。有沒有解決這個問題的好方法?如何使用h:dataTable正確使用ResultSet
1
A
回答
4
事實上,你應該總是購買和關閉Connection
,Statement
和ResultSet
在最短可能的範圍內(最好是已經非常相同的方法塊內),你應該永遠不會傳遞任何他們的DAO類之外。您需要將ResultSet
映射到List<Data>
,其中Data
表示表中的每一行。這裏有一個基本的例子,如何映射一個結果:
List<Data> items = new ArrayList<Data>();
...
while (resultSet.next()) {
Data item = new Data();
item.setColumn1(resultSet.getString("column1"));
item.setColumn2(resultSet.getString("column2"));
items.add(item);
}
...
return items;
然後,你可以用它在h:dataTable
的value
屬性。
更多的例子和見解,你可能會發現有用的在下面的文章中一個或兩個:
http://balusc.blogspot.com/2006/06/using-datatables.html
http://balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html
好運。
1
您使用的是ResultDataSetModel?如果是的話請注意,在javadoc停留Note that the specified ResultSet MUST be scrollable
。
Statement stmt=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
下面是ResultDataSetModel usecase的完整示例。
1
請查看以下鏈接:http://www.coderanch.com/t/478265/JSF/java/Displaying-array-data-tables#2585794
我肯定可以幫助你解決你的問題
相關問題
- 1. 如何正確使用Redis?
- 2. 如何正確使用ngx_write_chain_to_temp_file?
- 3. 如何正確使用WL.Client.getID()?
- 4. 如何正確使用MIDIReadProc?
- 5. 如何正確使用ColumnDefinitions.Add?
- 6. 如何正確使用queryOrderedByValue
- 7. 如何正確使用PowMod?
- 8. 如何正確使用array_diff_key?
- 9. 如何正確使用CGPathApply
- 10. 如何正確使用AsyncTask
- 11. 如何正確使用addCustomRequestHeader
- 12. 如何正確使用pjax?
- 13. 如何正確使用RegisterNatives
- 14. 如何正確使用stdafx.h?
- 15. MYSQL_FREE_RESULT如何正確使用?
- 16. 如何正確使用before_save?
- 17. 如何正確使用Class.cast()?
- 18. 如何正確使用DATATABLE
- 19. 如何正確使用moment.js?
- 20. 如何正確使用imap_mail_compose
- 21. 如何正確使用.removeClass
- 22. 如何正確使用CultureInfo.InvariantCulture
- 23. 如何正確使用
- 24. 如何正確使用Oauth
- 25. 如何正確使用sync.Cond?
- 26. 如何正確使用glDiscardFramebufferEXT
- 27. 如何正確使用BindIPEndPointDelegate?
- 28. 如何正確使用SDL_MOUSEBUTTONDOWN?
- 29. 如何正確使用dirent.h
- 30. 如何正確使用MemoryMappedViewAccessor?
謝謝,作品真的很好! – 2009-11-12 14:14:31