Conexion a BD Con ServLets
-
Upload
oscardavidmosquera -
Category
Documents
-
view
42 -
download
0
description
Transcript of Conexion a BD Con ServLets
Conectarse a una BDdesde Java - Web
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.
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á:
Ahora cree la Base de Datos
Nombre BD: PruebaBDWebUsuario: usuarioContraseña: 123456
Ya se creó la Base de Datos
Ahora conecte el servicio: Recuerde que debe conectar el servicio que tiene el nombre del usuario que acabo de crear.
Creado el esquema, a continuación cree la primera tabla
Tabla EmpleadoCódigo: IntNombre: VarcharEdad: Int
A continuación, inserte datos de prueba
Para verificar que los datos fueron ingresados, y que el motor funciona adecuadamente, consulte todos los nombres de los empleados insertados
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; }}
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"); } }
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; }}
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>
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(); } }
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