Ser vlet conectar con base de datos
Upcoming SlideShare
Loading in...5
×
 

Ser vlet conectar con base de datos

on

  • 2,811 views

Servlet conexion a base de datos, ejemplo como conectar a base de datos con servlet

Servlet conexion a base de datos, ejemplo como conectar a base de datos con servlet

Statistics

Views

Total Views
2,811
Views on SlideShare
2,811
Embed Views
0

Actions

Likes
0
Downloads
52
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ser vlet conectar con base de datos Ser vlet conectar con base de datos Presentation Transcript

  • SerVlet Conectar con Base de Datos
    DavidPaLMundo@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:
  • Conectar
    importjavax.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 Oracle
    Class.forName("oracle.jdbc.driver.OracleDriver");
    //Nos conectamos a la BD local
    conexion = DriverManager.getConnection (
    "jdbc:oracle:thin:@localhost:1521:PROGBD2",
    "fjgarcia","claveSecreta");
    /*//Nos conectamos a la BD de la ETSII
    Stringclave="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 mal
    out.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: