package io.bitbucket.NombreDeUsuario.jee07.generadores; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; public final class DocumentoHtml { public static String documentoHtml(String consultaSql, ResultSet conjuntoDeResultados) { StringBuffer documento = new StringBuffer(); documento.append(""); documento.append(""); documento.append(""); documento.append(""); documento.append("ServletConexionPostgreSQL"); documento.append(""); documento.append(""); documento.append(""); documento.append(""); documento.append("
"); documento.append("
"); documento.append("

ServletConexionPostgreSQL

"); documento.append("
"); documento.append("
"); documento.append(""); documento.append("
"); documento.append("
"); documento.append("

Consulta SQL

"); documento.append("

" + consultaSql + "

"); documento.append("

Resultado

"); try { documento.append(""); } catch (SQLException e) { documento.append("¡Error al tratar de leer el resultado!"); } documento.append("
"); documento.append("
"); documento.append(""); documento.append(""); return documento.toString(); } public static void conResultadoDeConsultaSQL(HttpServletResponse response) throws IOException { Connection conexionAPostgreSql = null; Statement sentenciaDeConexion = null; ResultSet conjuntoDeResultados = null; /* * Puedes encontrar más funciones de PostgreSQL en * https://www.postgresql.org/docs/9.6/static/functions-info.html */ String consultaSql = "select " + "version() as version_postgresql, " + "CURRENT_DATE as fecha_sistema, " + "CURRENT_TIME as hora_sistema"; /* * Investigar sobre: try-with-resources */ try { Context contexto = new InitialContext(); DataSource fuenteDeDatos = (DataSource)contexto.lookup("java:comp/env/jdbc/PostgreSQL"); conexionAPostgreSql = fuenteDeDatos.getConnection(); sentenciaDeConexion = conexionAPostgreSql.createStatement(); conjuntoDeResultados = sentenciaDeConexion.executeQuery(consultaSql); response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriter salida = response.getWriter(); salida.println(documentoHtml(consultaSql, conjuntoDeResultados)); } catch (Exception e) { System.err.println("Error durante la conexión: " + e.getMessage()); } finally { if (conjuntoDeResultados != null) { try { conjuntoDeResultados.close(); } catch (Exception e) { System.err.println("Error cerrando el conjuntoDeResultados" + e.getMessage()); } } if (sentenciaDeConexion != null) { try { sentenciaDeConexion.close(); } catch (Exception e) { System.err.println("Error cerrando la sentenciaDeConexion" + e.getMessage()); } } if (conexionAPostgreSql != null) { try { conexionAPostgreSql.close(); } catch (Exception e) { System.err.println("Error cerrando la conexionAPostgreSQL" + e.getMessage()); } } } } }