Ir al contenido principal

JSP y MySQL Conexion a Base de Datos

Tema anterior: http://superahacker.blogspot.com/2009/06/instalacion-netbeans-glassfish.html

El modulo JSP con conexion a una base de datos MySQL, tiene las siguientes caracteristicas usar una clase Java llamada "Customers" que se encuentra en un package llamado "Mypackage", para usar sus metodos y con ellos llevar acabo una consulta.



Nota : Para conexiones remotas a MySQL fuera de localhost, recuerde que tiene que autorizarlas haciendo uso de los privilegios de MySQL.

Manos a la obra muchachos carguemos o iniciemos NetBeans.


una vez cargado NetBeans vamos al menu File/New Project tal como se observa en la imagen.



Seleccione en recuadro de Categories: Java Web y en recuadro de Projects: Web Application. luego presione en [Next >].


Asignele un nombre al Proyecto en nuestro caso vamos a poner DemoJSP. luego presionamos en [Next >].


Aqui Seleccione el server con el que quiere trabajar el proyecto en nuestro caso escogemos GlassFish v3 y presionamos en [Finish]


Una Vez terminado esto NetBeans nos creara automaticamente un archivo llamado index.jsp que despues vamos a modificar.

Necesitamos crear dentro de Source Package un Package llamado "MyPackage" y dentro de el una clase java llamado "Customers"

Observe la siguiente imagen a continuación.



Dentro de la clase java "Customers" modifique e inserte todo este codigo.
package MyPackage;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
public class Customers {
//Declaraciones de Variables
Connection Conexion;
ResultSet Consulta;
Statement Acceso;
public String Sql;

/*-- Constructor New --*/
public Customers(){
Conexion = null;
Consulta= null;
Acceso=null;

// Cadena Conexion MySQLString 
StrConxMySQL= "jdbc:mysql://localhost/cdcol";
String StrUserMySQL= "root";
String StrPassMySQL= "";

try {
/*-- MySQL --*/
Class.forName("com.mysql.jdbc.Driver");
Conexion=DriverManager.getConnection(StrConxMySQL,StrUserMySQL,StrPassMySQL);
Acceso = Conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.println("Conectando.....");
}catch(java.lang.ClassNotFoundException e){
System.out.println(""+e);
}catch(SQLException e) {
System.out.println(""+e);};
}

/*-- Funcion Consultar -- */
public ResultSet Consultar(String Campos,String Tabla,String Filtro){
try {
Sql="Select "+Campos+" From "+Tabla+" Where 1=1 "+Filtro;System.out.println(Sql);
Consulta=Acceso.executeQuery(Sql);
}catch(SQLException e) {
System.out.println(""+e);
}
return (Consulta);
}

/*-- Funcion Cerrar Conexion -- */
public void Cerrar(){
try{Acceso.close();
Conexion.close();
}catch(SQLException e) {
System.out.println(""+e);
}}}

Para no tener problemas con las objetos y drivers de conexion necesitamos agregar a nuestro proyecto en la parte de Libraries la librerias MySQL JDBC Driver tal como se muestra en esta imagen.



Ahora necesitamos crear dentro de Web Pages un cascading Style o css llamado "stylos.css"



Dentro de el copie el siguiente codigo, tal como se ve en la imagen anterior.
body, td {font-family: "Lucida Grande", "Lucida Sans Unicode", "sans-serif";font-size: 12px;color: #444;}
.tdtitulo {width:25px;border: 1px solid #CCC;cursor: pointer;font-weight:bold;background-color:#CCC;}


Ahora modificaremos el index.jsp tal como se muestra en esta imagen.



copiamos todo este codigo dentro del index.jsp.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DemoJSP Desde Perú
</title>
<link rel="stylesheet" href="stylos.css">
</head>
<body>
<%-- Importando  Librerias y Clases--%>
<%@ page import = "MyPackage.Customers" %>
<%@ page import = "java.sql.*" %>
<%!
/* -------------------------------
* Declaración de Variables en JSP* 
-------------------------------*/
Customers Cliente;
ResultSet Tabla=null;
%>
<%
/* -- JSP --*/
try{Cliente = new Customers();
Tabla=Cliente.Consultar("*","cds", "");
/* -----------------------------
* Extrayendo Numero de Columnas
* Extrayendo Nombre de Tabla
------------------------------- */
int NumColumns = Tabla.getMetaData().getColumnCount();
String tableName = Tabla.getMetaData().getTableName(1);
out.println("<h1> Listado de "+tableName+" </h1>");
out.println("<table>");
out.println("<tr>");/* -- ---------------------------
* Extrayendo Nombre de Columnas
------------------------------- */
for (int i=1; i<NumColumns+1; i++) {
String columnName =Tabla.getMetaData().getColumnName(i);
out.println("<td class='tdtitulo'>"+columnName+"</td>");
}
out.println("</tr>");
/* -----------------------------
*  Mostrando Datos de columnas
------------------------------- */
while(Tabla.next()){
out.println("<tr>");
for (int i=1; i<NumColumns+1; i++) {
out.println("<td>" + Tabla.getString(i) +"</td>");
}
out.println("</tr>");
}
out.println("</table>");
/* -----------------------------
*  Cerrando la Conexion
------------------------------- */
Cliente.Cerrar();
}catch(Exception e){
out.println("<td>ERRORS</td>");
}
%>
</body>
</html>

Ahora solo nos faltaria crear la base de datos en MySQL llamada cdcol y dentro de ella la tabla cds observe la imagen a continuación para apreciar la estructura modelada en MySQL Workbench.



para ello dejamos el script a continuación
#----------------------------
#Base de datos: cdcol
#----------------------------
DROP DATABASE cdcol;
CREATE DATABASE cdcol DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;USE cdcol;
#----------------------------
CREATE TABLE IF NOT EXISTS cds 
(titel varchar(200) COLLATE latin1_general_ci DEFAULT NULL,
interpret varchar(200) COLLATE latin1_general_ci DEFAULT NULL,
jahr int(11) DEFAULT NULL,id bigint(20) unsigned NOT NULL AUTO_INCREMENT,PRIMARY KEY (id));
#----------------------------
# Volcar la base de datos para la tabla 'cds'
#----------------------------
INSERT INTO cds VALUES('La Voz', 'Hector Lavoe', 1975, 1);
INSERT INTO cds VALUES('Voy pa Encima', 'Frankie Ruiz', 1987, 2);
INSERT INTO cds VALUES('El Dueño del Soneo', 'Cano Estremera', 1989, 3);

Es momento de probar nuestro proyecto DemoJSP para esto hay que hacer click derecho sobre DemoJSP y en el submenu elejimos Deploy, tal como se observa en esta imagen.




Despúes de haber hecho esto y ver como arranca nuestro servicio GlassFish podemos abri un navegador web en mi caso usare Google Chrome Usted puede usar Internet Explorer y en la dirección URL escribimos http://localhost:8080/DemoJSP/index.jsp recuerde escribir el nombre de la Aplicación Web tal cual escribio respetando mayúsculas y minúsculas.



Como pudo Apreciar tenemos la consulta con JSP a la base de datos MySQL sin problemas.

Es momento de ver el servidor de aplicaciones GlassFish en ejecución, Abrimos el navegador web tecleamos http://localhost:4848 y observe la siguiente imagen hemos marcado en un recuadro rojo nuestra Aplicación Web y un recuadro morado los datos de nuestra aplicación.



Listo eso es todo por el momento espero que el tiempo invertido, sirva de algo.

Nota: El ejemplo podrian adaptarlo a cualquier tabla de su Servidor de Datos MySQL solo con modificar en el index.jsp en la linea 24 lo siguiente.

Imaginemos que tenemos una tabla llamada "mitabla" y que no queremos mostrar todos los campos, solo "campo1" y "campo2" y que solo queremos que se muestren los que en el "campo1" son mayores a cero
Tabla=Cliente.Consultar("campo1,campo2","mitabla", " and campo1 > 0 ");

Ahora si nuestra tabla llamada "mitabla" se encuentra en otra base de datos MySQL necesitamos cambiar la cadena de conexion en la clase java "Customers" en la linea 19 y poner el nombre de nuestra base de datos imaginemos que se llama "db"
String StrConxMySQL= "jdbc:mysql://localhost/db";

Bueno con eso podriamos mostrar a nuestro antojo cualquier tabla de nuestro servidor MySQL.

Comentarios

Entradas más populares de este blog

JSP y MsSQL Conexion a Base de Datos

Tema anterior: http://superahacker.blogspot.com/2009/09/jsp-y-mysql-conexion-base-de-datos.html El modulo JSP con conexion a una base de datos Ms SQL Server, tiene las siguientes caracteristicas usar una clase Java llamada "Customers" que se encuentra en un package llamado "Mypackage" , para usar sus metodos y con ellos llevar acabo una consulta.

FreeTDS para el acceso a MsSQL desde PHP en Linux CentOS 5

Tema Anterior: http://superahacker.blogspot.com/2009/04/instalacion-de-unixodbc-para-la.html En esta ocasion la situación es como conectar con PHP 5 desde un Servidor Linux a una base de Datos Ms Sql Server en Servidor Windows.