Conexion a BD Con ServLets

16
Conectarse a una BD desde Java - Web

description

hola

Transcript of Conexion a BD Con ServLets

Page 1: Conexion a BD Con ServLets

Conectarse a una BDdesde Java - Web

Page 2: Conexion a BD Con ServLets

1. Cree un nuevo proyecto Java Web2. Descargue el respectivo driver para conectarse a una BD Derby. El driver JDBC para

Derby: derbyclient.jar3. Agregue el driver a la carpeta de librerías, creada dentro de SRC.

Page 3: Conexion a BD Con ServLets

A continuación, inicialice el servicio de Derby:En la pestaña de servicios

Inicie el servidor de Bases de Datos

Tan pronto se inicie el servidor, en la consola aparecerá:

Page 4: Conexion a BD Con ServLets

Ahora cree la Base de Datos

Nombre BD: PruebaBDWebUsuario: usuarioContraseña: 123456

Ya se creó la Base de Datos

Page 5: Conexion a BD Con ServLets

Ahora conecte el servicio: Recuerde que debe conectar el servicio que tiene el nombre del usuario que acabo de crear.

Page 6: Conexion a BD Con ServLets

Creado el esquema, a continuación cree la primera tabla

Tabla EmpleadoCódigo: IntNombre: VarcharEdad: Int

Page 7: Conexion a BD Con ServLets

A continuación, inserte datos de prueba

Page 8: Conexion a BD Con ServLets

Para verificar que los datos fueron ingresados, y que el motor funciona adecuadamente, consulte todos los nombres de los empleados insertados

Page 9: Conexion a BD Con ServLets

Teniendo los datos insertados, a continuación se deben crear las clases que se conectaran y ejecutaran las transacciones. Para este pasa, se debe retornar a la pestaña de “Proyecto” Cree una clase “Conexion” Inserte el siguiente código al interior de la clase public class Conexion { private static Connection cn = null; private static Driver driver = new org.apache.derby.jdbc.ClientDriver(); private static String URLBD = "jdbc:derby://localhost:1527/Prueba"; private static String usuario = "usuario"; private static String contrasena = "123456"; public static Connection getConexion() throws SQLException { DriverManager.registerDriver(driver); cn = DriverManager.getConnection(URLBD, usuario, contrasena); return cn; }}

Page 10: Conexion a BD Con ServLets

A continuación se debe crear la clase que opere la conexión, y administre las operaciones DML:

import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;

public class OperacionesBD {

private Connection con = null; private Statement st = null; private ResultSet rs = null;

public OperacionesBD() { try { con = Conexion.getConexion(); } catch (SQLException ex) { System.out.println("No se pudo realizar la conexion"); } }

public void insertarDatos(String n, int e) { int ultimo = 0; String consulta = "SELECT COUNT(*) FROM empleado"; try { st = con.createStatement(); rs = st.executeQuery(consulta); while (rs.next()) { ultimo = rs.getInt(1); } st = con.createStatement(); String insercion = "INSERT INTO Empleado VALUES("+(ultimo+1)+",'"+n+"',"+e+")"; st.executeUpdate(insercion); } catch (SQLException ex) { System.out.print("No se pudo realizar la insercion"); } }

Page 11: Conexion a BD Con ServLets

public String mostrarDatos() { String rta = "CÓDIGO\tNOMBRES\tEDAD<br>"; String consulta = "SELECT * FROM empleado"; try { st = con.createStatement(); rs = st.executeQuery(consulta); while (rs.next()) { int codigo, edad; String nombres; codigo = rs.getInt("codigo"); nombres = rs.getString("nombre"); edad = rs.getInt("edad"); rta += codigo + "\t" + nombres + "\t" + edad+"<br>"; } } catch (SQLException ex) { System.out.println("No se pudo realizar la consulta"); } return rta; }

public void cerrarCnx() throws SQLException { rs.close(); rs = null; st.close(); st = null; con.close(); con = null; }}

Page 12: Conexion a BD Con ServLets

Modifique el index.jsp para adicionar los campos que se van a insertar en la BD

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Insercion de Datos a la BD</h1> <form action="ServLetBD" method="post"> Digite el nombre <input type="text" name="nombre"><br> Digite la edad <input type="text" name="edad"><br> <input type="submit" name="Enviar"> <input type="reset" name="Cancelar"> </form> </body></html>

Page 13: Conexion a BD Con ServLets

Cree el servlet que se va a conectar a las operaciones y gestionar la transacción de los datos

private OperacionesBD opBD;public ServletBD(){ opBD=new OperacionesBD();} protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { String nombre=request.getParameter("nombre"); int edad=Integer.parseInt(request.getParameter("edad")); opBD.insertarDatos(nombre, edad); String datos=opBD.mostrarDatos(); out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet ServletBD</title>"); out.println("</head>"); out.println("<body bgcolor=pink>"); out.println("<h1>Datos en la BD </h1>"); out.println("<br>"+ datos); out.println("</body>"); out.println("</html>"); } finally { out.close(); } }

Page 14: Conexion a BD Con ServLets
Page 15: Conexion a BD Con ServLets
Page 16: Conexion a BD Con ServLets

Ejercicio Extraclase

Modifique y cree los servlets necesarios para que desde un index principal se pueda:

a.Insertar un registro en la Base de Datosb.Consultar todos los registros insertadosc.Consultar un registro dado su numero de código