Sei sulla pagina 1di 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.

Potrebbero piacerti anche