Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何将ResultSet与h:dataTable一起正确使用_Jsf_Jdbc_Database Connection_Resultset - Fatal编程技术网

Jsf 如何将ResultSet与h:dataTable一起正确使用

Jsf 如何将ResultSet与h:dataTable一起正确使用,jsf,jdbc,database-connection,resultset,Jsf,Jdbc,Database Connection,Resultset,问题是,在使用显示结果集之后,连接保持打开状态。如果我关闭它,它也会关闭ResultSet。我正在考虑将ResultSet数据复制到一些HashMap/ArrayList组合中。有没有解决这个问题的好方法?事实上,您应该始终在最短的可能范围内(最好已经在同一个方法块内)获取并关闭连接,语句和结果集你不应该在道门之外通过任何一个。您需要将结果集映射到列表,其中数据表示表中的每一行。下面是一个如何映射结果集的基本示例: List<Data> items = new ArrayList&l

问题是,在使用
显示
结果集之后,连接保持打开状态。如果我关闭它,它也会关闭
ResultSet
。我正在考虑将
ResultSet
数据复制到一些
HashMap
/
ArrayList
组合中。有没有解决这个问题的好方法?

事实上,您应该始终在最短的可能范围内(最好已经在同一个方法块内)获取并关闭
连接
语句
结果集
你不应该在道门之外通过任何一个。您需要将
结果集
映射到
列表
,其中
数据
表示表中的每一行。下面是一个如何映射结果集的基本示例:

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;
List items=new ArrayList();
...
while(resultSet.next()){
数据项=新数据();
item.setColumn1(resultSet.getString(“column1”);
item.setColumn2(resultSet.getString(“column2”);
项目。添加(项目);
}
...
退货项目;
然后您就可以在
h:dataTable
value
属性中使用它

有关更多示例和见解,您可能会发现以下一篇或两篇文章都很有用:


祝你好运。

事实上,你应该总是在最短的可能范围内(最好已经在同一个方法块内)获取并关闭
连接
语句
结果集
,并且你不应该将它们传递到DAO类之外。您需要将
结果集
映射到
列表
,其中
数据
表示表中的每一行。下面是一个如何映射结果集的基本示例:

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;
List items=new ArrayList();
...
while(resultSet.next()){
数据项=新数据();
item.setColumn1(resultSet.getString(“column1”);
item.setColumn2(resultSet.getString(“column2”);
项目。添加(项目);
}
...
退货项目;
然后您就可以在
h:dataTable
value
属性中使用它

有关更多示例和见解,您可能会发现以下一篇或两篇文章都很有用:

祝你好运。

你在用什么?如果是,请注意在javadoc中保持
,请注意指定的结果集必须是可滚动的

Statement stmt=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
这是一个完整的用例示例。

您正在使用吗?如果是,请注意在javadoc中保持
,请注意指定的结果集必须是可滚动的

Statement stmt=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

这是一个完整的用例示例。

请查看以下链接:


我肯定能帮助您解决问题

请查看以下链接:

我肯定能帮你解决你的问题