Я разрабатываю приложение для одного из наших клиентов с использованием Java 1.7 + GAE и используя Google cloud sql, а также базу данных.Попытка получить данные из большого набора данных
Я пытаюсь получить данные из огромного набора результатов, но единственное, что я получаю от страшного таймаута.
До сих пор, код я имею следующее:
public List <String> leerMasivo(String cadena, String [] valores) throws SQLException{
log.info("Entra en la función leer(String cadena, String [] valores)");
this.conectar();
long nRowsNumber = 1;
long nId = 0;
List <String> listaDatos = new ArrayList <String>();
try{
while (nRowsNumber > 0) {
nRowsNumber = 0;
PreparedStatement stmt = con.prepareStatement(cadena, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
stmt.setMaxRows(10);
System.out.println("Número de filas maximo "+stmt.getMaxRows());
if(valores != null){
for(int i=0; i< valores.length;i++){
stmt.setString(i+1,valores[i]);
}
}
ResultSet rs = stmt.executeQuery();
ResultSetMetaData rsmd = (ResultSetMetaData) rs.getMetaData();
int numeroColumnas= rsmd.getColumnCount();
while (rs.next()){
++nRowsNumber;
nId = rs.getLong(1);
if (numeroColumnas >1){
String fila ="";
for (int i=1;i<=numeroColumnas;i++){
fila=fila + "::" + rs.getString(i);
}
fila=fila+"%%";
listaDatos.add(fila);
}else{
listaDatos.add(rs.getString(1));
}
}
}
log.info("Los valores leidos son: " + listaDatos.toString());
}catch(Exception e){
log.info("Ha ocurrido un error");
log.info("el error es " + e.getMessage().toString());
con.close();
e.printStackTrace();
}finally{
this.cerrarConexion();
}
log.info("Sale de la función leer(String cadena, String [] valores)");
return listaDatos;
}
Я требую, если у вас есть время, чтобы сказать мне, что осталось, так что я могу получить данные мне нужно без получения ошибки тайм-аута. Прямо сейчас я не знаю, чего я могу потерять.
Спасибо за ваше время,
Уважением,
Пожалуйста, определите «огромный». –
Более 8000 строк в результате выбора запроса с двумя объединениями, для меня, его огромными. – Catersa