Lo primero, muchiiiiiiiiiiiiiiiiiisimas gracias por contestar. Aleluya, jeje.
Lo segundo:
He hecho otro .java basado en el otro pero con comentarios, aquí dejo el código
Código:
import java.io.*;
import java.sql.*;
import javax.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
public class AccesoBD extends HttpServlet {
private DataSource fuenteDatos = null;
public void init(ServletConfig config) throws ServletException
{
try
{
// recuperamos el contexto inicial y la referencia a la fuente de datos
Context ctx = new InitialContext();
fuenteDatos = (DataSource) ctx.lookup("java:comp/env/jdbc/AccesoBD");
}
catch (Exception e)
{
throw new ServletException("Imposible recuperar java:comp/env/jdbc/AccesoBD",e);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
Connection con = null; // conexion parcial
response.setContentType("text/html"); // retornamos el tipo de respuesta
PrintWriter out = response.getWriter();
out.println("Prueba del Pool de Objetos");
out.println("Buscamos tutorial con sentencias preparadas");
try {
out.println("Probamos a recuperar conexión");
synchronized (fuenteDatos)
{
con = fuenteDatos.getConnection(); // cogemos la conexion
}
if(con == null)
{
out.println("Error al recuperar la conexion, es nula");
throw new ServletException("Problemas con la conexion");
}
out.println("Preparamos la consulta");
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM casarural");
pstmt.setInt(1,10); // establecemos el entero
ResultSet results = pstmt.executeQuery();
while (results.next())
{
String id = results.getString(1);
String nombre = results.getString(2);
out.println("El nombre es " + nombre + " para id " + id + "");
}
}
catch (Exception e)
{
out.println("Error al procesar consulta " + e.getMessage());
}
finally // pase lo que pase retornamos la conexion
{
try
{
con.close();
}
catch (Exception e)
{
out.println("Error en proceso " + e.getMessage());
}
}
out.println("-Fin-"); // cerramos la respuesta
out.close(); // Cerramos buffer
}
}
Y me sale:
Código:
Prueba del Pool de Objetos
Buscamos tutorial con sentencias preparadas
Probamos a recuperar conexión
Error al procesar consulta Cannot create JDBC driver of class '' for connect URL 'null' Error en proceso null -Fin-