【问题标题】:Trying to get data from large dataset试图从大型数据集中获取数据
【发布时间】:2013-11-25 13:06:57
【问题描述】:

我正在使用 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 行作为带有两个连接的选择查询的结果,对我来说,这是巨大的。

标签: java google-app-engine google-cloud-sql


【解决方案1】:

你有几个选择:

【讨论】:

  • 谢谢你的评论,musketyr,我会去你的回复。亲切的问候,
猜你喜欢
  • 1970-01-01
  • 2017-10-08
  • 2018-07-11
  • 2012-10-11
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多