Anda di halaman 1dari 6

Alumna: Keren Monge Cid Materia: Web Application Development Maestro: Alejandro S.

lvarez Cifuentes Grupo: 3CM2 2do Departamental

Conexin de Mysql con NetBeans


Objetivo Realizar un programa que realice la conexin con una base de datos en Mysql va web utilizando el IDE NetBeans y el servidor Tomcat. Introduccin Para realizar esta prctica se debe tener instalado el gestor de base de datos Mysql y configurado el servidor Tomcat con NetBeans y conocimientos bsicos del lenguaje sql. Procedimiento: 1. Se debe crear una base de datos en Mysql la cual utilizaremos para acceder con NetBeans, en este caso se cre la base Usuarios , se cre la tabla usuario con los campos nombre y pass y se le agreg un registro.

2. Se debe configurar el MySQL Connector Java en NetBeans, en la pestaa Services, seleccionar Databases y en Drivers verificar si se encuentra el MySQL (Connector /J Driver), sino dar clic derecho sobre Drivers y agregar el .jar previamente descargado. Con esto podremos acceder a una base de datos de MySQL a travs de NetBeans.

3. Ahora se crea un proyecto con categora Java Web, seleccionando en Web Application, configurando para ser usado con Tomcat, y se crea una clase que extienda de Servlet. 4. Lo siguiente seria realizar la codificacin, para conectar la base de datos usuarios y realizar consultas. Lo que se realiz fue una pgina JSP que pide el nombre y contrasea de un usuario registrado en la base de datos usuarios, al dar clic en el botn Iniciar Sesin se conecta con el la clase que extiende de Servlet en la cual se realiza la consulta y la comparacin de datos y se re-direcciona a otra pgina que muestra los datos del usuario, sino coincidieron no muestra nada. A continuacin se despliegan los cdigos de las clases que se utilizaron para esta prctica. Clase que conecta con la base de datos, ConexDB.java import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; public class ConexDB { private Connection conexion; protected Statement instruccion; protected boolean conectadoABaseDatos = false; protected boolean result = false; protected ResultSet conjres=null; protected boolean band = false; String mensajeEXC; public ConexDB(){ } boolean conectar(String controlador, String url, String nombreUsuario, String pass){ try { Class.forName( controlador ); conexion = DriverManager.getConnection(url, nombreUsuario, pass); instruccion = conexion.createStatement(); conectadoABaseDatos = true; } catch (ClassNotFoundException ex) { mensajeEXC ="No se pudo registrar el controlador"; Logger.getLogger(ConexDB.class.getName()).log(Level.SEVERE, null, ex); }catch (SQLException ex) { mensajeEXC ="No se pudo conectar a la Base de Datos"; Logger.getLogger(ConexDB.class.getName()).log(Level.SEVERE, null, ex); } return conectadoABaseDatos; }

String establecerConsulta(String consulta){ String s = ""; try{ conjres = instruccion.executeQuery( consulta ); ResultSetMetaData metadatos = conjres.getMetaData(); int numeroDeColumnas = metadatos.getColumnCount(); if(conjres.next()) for(int i=1; i<=numeroDeColumnas; i++){ s += (String)conjres.getObject(i)+" "; } } catch (SQLException ex) { Logger.getLogger(ConexDB.class.getName()).log(Level.SEVERE, null, ex); } return s; } void establecerUpdate(String consulta){ try{ int i = instruccion.executeUpdate(consulta); System.out.println(i); } catch (SQLException ex) { Logger.getLogger(ConexDB.class.getName()).log(Level.SEVERE, null, ex); } } void desconectarDB(){ try{ instruccion.close(); conexion.close(); } catch(Exception e){e.printStackTrace();} } } Clase que sirve de interfaz entre el servlet y la ConexDB.java import java.sql.ResultSet; import java.sql.Statement; public class InterfazDB { static final String CONTROLADOR = "com.mysql.jdbc.Driver"; static final String URL_BASEDATOS = "jdbc:mysql://localhost:3306/usuarios"; static final String NOMBREUSUARIO = "root"; static final String CONTRASENIA = "12345"; protected Statement instruccion;

protected ResultSet resulset=null; String consulta, result; ConexDB conectar; boolean BDconectada = false; boolean exito = false; public InterfazDB(){ conectar = new ConexDB(); if(conectar.conectar(CONTROLADOR, URL_BASEDATOS, NOMBREUSUARIO, CONTRASENIA)){ BDconectada = true; } } String consulta(String consulta){ return conectar.establecerConsulta(consulta); } } Clase que extiende de HttpServlet la cual se encarga de realizar una consulta a la base de datos y mostrar el resultado. MiServlet.java import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MiServlet extends HttpServlet { String consulta, result="";// ="SELECT * FROM usuario"; InterfazDB DB; String in; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException { response.setContentType("application/octet-stream"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); if(DB.BDconectada){ consulta = "SELECT nombre,pass FROM usuario WHERE nombre='"+request.getParameter("usr")+"' AND pass='"+request.getParameter("pass")+"'"; result = DB.consulta(consulta); out.println("<html>");

out.println("<head>"); out.println("<title>Sesion</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>usuario encontrado</h1>"); out.println("<h1>"+result+"</h1>"); out.println("</body>"); out.println("</html>"); } } public void init(){ DB = new InterfazDB(); } public String getServletInfo() { return "Short description"; }// </editor-fold> } Pagina JSP que pide los datos que sern enviados a MiServlet.java <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <%--<link rel="StyleSheet" media="screen" type="text/css" href="estilo.css">--%> <title>Inicio de sesin</title> </head> <body> <fieldset id="registrousuario"> <form action="MiServlet" method="POST"> <legend><p>Iniciar Sesin</p> </legend> <label for="user"> Usuario:</label> <input class="texto" type="text" name="usr"/><br/> <br/><label for="pass"> Contrasea:</label> <input class="texto" type="password" name="pass"/><br/> <input class="botonenviar" type="submit" value="Iniciar sesin" name="login" /> </form> </fieldset> </body> </html>

Ejecucin Se ejecuta el proyecto desde NetBeans y muestra la pgina inicial:

Se introducen datos correctos y se presiona el botn:

Se re-direcciona a otra pagina que se cre en la clase que extiende de Servlet que muestra los datos encontrados en la base de datos:

Conclusin En esta prctica se aprendi que el uso de NetBeans para la conexin con MySQL facilita el acceso a las bases de datos, ya que se pueden hacer consultas remotas (va web) utilizando una interfaz grfica como un servlet o un HTML.

Anda mungkin juga menyukai