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("
Consulta SQL
");
documento.append("
" + consultaSql + "
");
documento.append("
Resultado
");
try {
documento.append("
");
while (conjuntoDeResultados.next()) {
String version_postgresql = conjuntoDeResultados.getString("version_postgresql");
String fecha_sistema = conjuntoDeResultados.getString("fecha_sistema");
String hora_sistema = conjuntoDeResultados.getString("hora_sistema");
documento.append("- version_postgresql :=
" + version_postgresql + "
");
documento.append("- fecha_sistema :=
" + fecha_sistema + "
");
documento.append("- hora_sistema :=
" + hora_sistema + "
");
}
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());
}
}
}
}
}