問題是,在顯示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. Resultset的getObject()方法 - 如何正確使用它?
- 2. 如何使用ActivePivot正確使用InStr?
- 3. 如何正確使用moment.js?
- 4. 如何正確使用WL.Client.getID()?
- 5. 如何正確使用ngx_write_chain_to_temp_file?
- 6. 如何使用CALLER_IS_SYNCADAPTER正確
- 7. 如何正確使用CSS:not()?
- 8. MYSQL_FREE_RESULT如何正確使用?
- 9. 如何正確使用IXMLDOCUMENT
- 10. 如何正確使用dll
- 11. 如何正確使用QDBusPendingCallWatcher?
- 12. 如何正確使用RequireJS?
- 13. 如何正確使用Task.WhenAll()
- 14. 如何正確使用imagettftext?
- 15. 如何正確使用request.querystring
- 16. 如何正確使用gss_import_name?
- 17. 如何正確使用stdafx.h?
- 18. 如何正確使用profr
- 19. 如何使用RedirectToAction正確
- 20. 如何正確使用Topshelf.Logging
- 21. 如何正確使用塊?
- 22. 如何正確使用Mono.Unix.UnixPipes.CreatePipes?
- 23. 如何正確使用MemoryMappedViewAccessor?
- 24. 如何正確使用dispatch_sync?
- 25. 如何正確使用cin.peek()
- 26. 如何使用replaceAll()正確
- 27. 如何正確使用MAX?
- 28. 如何正確使用VAO?
- 29. 如何正確使用MPI_Gather?
- 30. 如何正確使用tf.summary.text?
謝謝,作品真的很好! – 2009-11-12 14:14:31