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

Instalación Office 2010

Si ya cuenta con una versión anterior de Microsoft Office, no deje de probar esta nueva versión 2010 practica y facil de entender desde mi punto de vista.

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.