这是我试图对 resultSet
我第一次冗长的询问。我需要把数据上传到某个地方。
这样做对吗?
或者除了再次查询数据库之外,还有更好的方法吗?
public String createQuery() throws SQLException {
StringBuilder Query = new StringBuilder();
try {
Query.append(" SELECT ...... ")
} catch (Exception e) {
e.printStackTrace();
}
return Query.toString();
}
private void openPreparedStatements() throws SQLException {
myQuery = createQuery();
try {
QueryStatement = dbConnection.prepareStatement(myQuery);
} catch (SQLException e) {
e.printStackTrace();
return;
}
}
public ResultSet selectData(String timestamp) throws SQLException {
openConnection();
ResultSet result = null;
ResultSet rs_new=null;
try {
result = QueryStatement.executeQuery();
while (result.next()) {
String query = "SELECT * FROM " + result + " WHERE " + "ID" + " =" + "ABC";
rs_new =QueryStatementNew.executeQuery(query);
System.out.print(rs_new);
}
} catch (SQLException e) {
LOGGER.info("Exception", e);
}
return result;
}
3条答案
按热度按时间bmp9r5qi1#
不用运行两个单独的查询(当您不需要中间查询时),您可以将它们组合起来。
例如,您可以执行以下操作:
hwazgwia2#
不能在一个数据库连接中使用两个语句对象。因此,您可以打开另一个数据库连接并在第二个连接中执行第二条语句,或者从第一条语句遍历resultset并存储所需的值(例如,在数组/集合中),然后关闭该语句并运行第二条语句,这次从保存它们的数组/集合中检索值。请参阅java从resultset生成查询并执行新查询
flseospp3#
如果您有能力使用中间结果集,并且应用程序使用相同的数据库连接会话,请让db2将中间结果集保存在全局临时表中。
您可以发送后续测试的结果
SELECT ... FROM SESSION.TMP_RES
到ftp,以及SELECT * FROM SESSION.TMP_RES WHERE ID = 'ABC'
有弹性。