Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengakses data dari servlet

Pertama-tama, saya tidak menyarankan untuk menggunakan servlet untuk ini. Lihat jawaban aioobe dan mdma untuk pendekatan yang tepat. Tetapi jika memang tidak ada pilihan lain, lanjutkan membaca:

Cukup tulis data ke respons segera saat data masuk. Jangan simpan semuanya di memori Java. Jadi pada dasarnya:writer.write(resultSet.getString("col")) . Selanjutnya, driver MySQL JDBC secara default akan menyimpan semua yang ada di memori Java sebelum memberikan apa pun ke ResultSet#next() . Anda ingin membiarkannya memberikan data segera baris demi baris dengan menyetel Statement#setFetchSize() sesuai dokumentasi driver MySQL JDBC .

Berikut adalah contoh awal, dengan asumsi Anda ingin menampilkan data dalam format CSV:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/csv");

    Connection connection = null;
    Statement statement = null;
    ResultSet resultSet = null;
    PrintWriter writer = response.getWriter();

    try {
        connection = database.getConnection();
        statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
        statement.setFetchSize(Integer.MIN_VALUE);
        resultSet = statement.executeQuery("SELECT col1, col2, col3 FROM tbl");

        while (resultSet.next()) {
            writer.append(resultSet.getString("col1")).append(',');
            writer.append(resultSet.getString("col2")).append(',');
            writer.append(resultSet.getString("col3")).println();
            // PS: don't forget to sanitize quotes/commas as per RFC4130.
        }
    } catch (SQLException e) {
        throw new ServletException("Query failed!", e);
    } finally { 
        if (resultSet != null) try { resultSet.close; } catch (SQLException logOrIgnore) {}
        if (statement != null) try { statement.close; } catch (SQLException logOrIgnore) {}
        if (connection != null) try { connection.close; } catch (SQLException logOrIgnore) {}
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara memilih semua data yang array inputnya ditemukan dan tidak ditemukan di mysql

  2. Apakah mungkin untuk mengurangi variabel di MySQL?

  3. MySQL LOAD_FILE mengembalikan NULL

  4. JAM () Contoh – MySQL

  5. banyak-ke-banyak-hubungan antara dua entitas di boot musim semi