SerVlet Conectar con Base de DatosDavidPaLMundo@hotmail.com
	JDBC (Java DatabaseConnectivity) es la parte de Java que nos va a permitir conectarnos con bases de datos relacionales utilizando el lenguaje SQL. JDBC permite la integración de llamadas SQL dentro del código de nuestro Servlet Java proporcionando clases que nos permiten interactuar de forma fácil, cómoda y homogénea con bases de datos externas.
	Conexión con la base de datos con JDBC	Antes de acceder a la base de datos, es necesario conectarse desde nuestro Servlet (Cliente, en este caso) a la base de datos (servidor), esto se hace mediante dos pasos:	Leer el driver específico de la base de datos que vamos a utilizar, en nuestro caso, será:Class.forName("oracle.jdbc.driver.OracleDriver")
	Establecer la conexión. Una vez que tenemos el driver cargado en memoria, tendremos que crear una conexión (objeto de la clase Connection), indicando el driver a usar (jdbc:oracle:thin), la máquina(localhost), el puerto(1521), el SID de la base de datos(ProgBD2), el usuario(fjgarcia) y su contraseña(claveSecreta). Por ejemplo:Connectionconexion = DriverManager.getConnection(            "jdbc:oracle:thin:@localhost:1521:ProgBD2", "fjgarcia", "claveSecreta")	Cuando leemos el driver específico de la base de datos (en nuestro, caso oracle.jdbc.driver.OracleDriver) se puede producir una excepción del tipo (ClassNotFoundException que ocurrirá si no tenemos instalado correctamente el driver JDBC (revisar parte de instalación). Al leer el driver este se quedará en memoria y será el que se utilice internamente por JDBC.
	Cuando creamos una conexión (nos devuelve un objeto Connection) se abre una conexión con la base de datos que posteriormente debemos cerrar. Para crear la conexión se utiliza, como hemos visto, el método getConnection de la clase DriverManager, que como vemos tiene tres parámetros, el primero será la cadena de conexión, el segundo el usuario y el tercero la contraseña de dicho usuario. En la cadena de conexión tenemos el driver que se va a utilizar, nosotros siempre usaremos jdbc:oracle:thin la máquina a la que nos vamos a conectar precedida de una arroba (nosotros podremos usar @localhost para nuestro ordenador local o @oracle0.ugr.es para el servidor de la escuela), el puerto a utilizar (tanto local, como remoto usaremos el 1521) y el SID de la base de datos a utilizar (en local será ProgBD2 y en el servidor de la escuela será PRACTBD.
	Como hemos mencionado anteriormente para toda conexión que abramos tendremos que cerrarla, eso se hará mediante el método close()de Connection.	Veamos un pequeño ejemplo que sólo conecte a la base de datos local para ver si hubiera algún problema y que guardaremos como ConectaBD.java:
Conectarimportjavax.servlet.*;importjavax.servlet.http.*;import java.io.*;import java.sql.*;publicclassConectaBDextendsHttpServlet {publicvoidinit(ServletConfigconf)throwsServletException {super.init(conf);  }publicvoiddoGet(HttpServletRequestreq, HttpServletResponse res)throwsServletException, IOException {Connectionconexion = null;res.setContentType("text/html");PrintWriterout = res.getWriter();
	try {	//Leemos el driver de OracleClass.forName("oracle.jdbc.driver.OracleDriver");	//Nos conectamos a la BD localconexion = DriverManager.getConnection (			"jdbc:oracle:thin:@localhost:1521:PROGBD2",			"fjgarcia","claveSecreta");	/*//Nos conectamos a la BD de la ETSIIStringclave="claveSecretaETSII";conexion = DriverManager.getConnection (	       	"jdbc:oracle:thin:@oracle0.ugr.es:1521:PRACTBD",		  	"fjgarcia",clave);*/
//Decimos que nos hemos conectado out.println("<html>");out.println("<body>");out.println("<h1>¡Hemos conectado!</h1>");out.println("</body>");out.println("</html>");	} 	catch (ClassNotFoundException e1) {                //Error si no puedo leer el driver de Oracle out.println("ERROR:No encuentro el driver de la BD: "+				e1.getMessage());	}	catch (SQLException e2) {                //Error SQL: login/passwd malout.println("ERROR:Fallo en SQL: "+e2.getMessage());	}
finally {                //Finalmente desconecto de la BD		try {if (conexion!=null)conexion.close();		} catch (SQLException e3) {out.println("ERROR:Fallo al desconectar de la BD: "+				e3.getMessage());		}	}  }publicvoiddoPost(HttpServletRequestreq, HttpServletResponse res)throwsServletException, IOException {doGet(req, res);  }}
Observa que dentro de las bibliotecas que vamos a usar hemos añadido la línea import java.sql.*; que no sirve para utilizar las clases de JDBC 	El resultado si todo ha sido correcto debería ser:

Ser vlet conectar con base de datos

  • 1.
    SerVlet Conectar conBase de DatosDavidPaLMundo@hotmail.com
  • 2.
    JDBC (Java DatabaseConnectivity)es la parte de Java que nos va a permitir conectarnos con bases de datos relacionales utilizando el lenguaje SQL. JDBC permite la integración de llamadas SQL dentro del código de nuestro Servlet Java proporcionando clases que nos permiten interactuar de forma fácil, cómoda y homogénea con bases de datos externas.
  • 3.
    Conexión con labase de datos con JDBC Antes de acceder a la base de datos, es necesario conectarse desde nuestro Servlet (Cliente, en este caso) a la base de datos (servidor), esto se hace mediante dos pasos: Leer el driver específico de la base de datos que vamos a utilizar, en nuestro caso, será:Class.forName("oracle.jdbc.driver.OracleDriver")
  • 4.
    Establecer la conexión.Una vez que tenemos el driver cargado en memoria, tendremos que crear una conexión (objeto de la clase Connection), indicando el driver a usar (jdbc:oracle:thin), la máquina(localhost), el puerto(1521), el SID de la base de datos(ProgBD2), el usuario(fjgarcia) y su contraseña(claveSecreta). Por ejemplo:Connectionconexion = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:ProgBD2", "fjgarcia", "claveSecreta") Cuando leemos el driver específico de la base de datos (en nuestro, caso oracle.jdbc.driver.OracleDriver) se puede producir una excepción del tipo (ClassNotFoundException que ocurrirá si no tenemos instalado correctamente el driver JDBC (revisar parte de instalación). Al leer el driver este se quedará en memoria y será el que se utilice internamente por JDBC.
  • 5.
    Cuando creamos unaconexión (nos devuelve un objeto Connection) se abre una conexión con la base de datos que posteriormente debemos cerrar. Para crear la conexión se utiliza, como hemos visto, el método getConnection de la clase DriverManager, que como vemos tiene tres parámetros, el primero será la cadena de conexión, el segundo el usuario y el tercero la contraseña de dicho usuario. En la cadena de conexión tenemos el driver que se va a utilizar, nosotros siempre usaremos jdbc:oracle:thin la máquina a la que nos vamos a conectar precedida de una arroba (nosotros podremos usar @localhost para nuestro ordenador local o @oracle0.ugr.es para el servidor de la escuela), el puerto a utilizar (tanto local, como remoto usaremos el 1521) y el SID de la base de datos a utilizar (en local será ProgBD2 y en el servidor de la escuela será PRACTBD.
  • 6.
    Como hemos mencionadoanteriormente para toda conexión que abramos tendremos que cerrarla, eso se hará mediante el método close()de Connection. Veamos un pequeño ejemplo que sólo conecte a la base de datos local para ver si hubiera algún problema y que guardaremos como ConectaBD.java:
  • 7.
    Conectarimportjavax.servlet.*;importjavax.servlet.http.*;import java.io.*;import java.sql.*;publicclassConectaBDextendsHttpServlet{publicvoidinit(ServletConfigconf)throwsServletException {super.init(conf); }publicvoiddoGet(HttpServletRequestreq, HttpServletResponse res)throwsServletException, IOException {Connectionconexion = null;res.setContentType("text/html");PrintWriterout = res.getWriter();
  • 8.
    try { //Leemos eldriver de OracleClass.forName("oracle.jdbc.driver.OracleDriver"); //Nos conectamos a la BD localconexion = DriverManager.getConnection ( "jdbc:oracle:thin:@localhost:1521:PROGBD2", "fjgarcia","claveSecreta"); /*//Nos conectamos a la BD de la ETSIIStringclave="claveSecretaETSII";conexion = DriverManager.getConnection ( "jdbc:oracle:thin:@oracle0.ugr.es:1521:PRACTBD", "fjgarcia",clave);*/
  • 9.
    //Decimos que noshemos conectado out.println("<html>");out.println("<body>");out.println("<h1>¡Hemos conectado!</h1>");out.println("</body>");out.println("</html>"); } catch (ClassNotFoundException e1) { //Error si no puedo leer el driver de Oracle out.println("ERROR:No encuentro el driver de la BD: "+ e1.getMessage()); } catch (SQLException e2) { //Error SQL: login/passwd malout.println("ERROR:Fallo en SQL: "+e2.getMessage()); }
  • 10.
    finally { //Finalmente desconecto de la BD try {if (conexion!=null)conexion.close(); } catch (SQLException e3) {out.println("ERROR:Fallo al desconectar de la BD: "+ e3.getMessage()); } } }publicvoiddoPost(HttpServletRequestreq, HttpServletResponse res)throwsServletException, IOException {doGet(req, res); }}
  • 11.
    Observa que dentrode las bibliotecas que vamos a usar hemos añadido la línea import java.sql.*; que no sirve para utilizar las clases de JDBC El resultado si todo ha sido correcto debería ser: