• No results found

Hierarchical Agglomerative Clustering for CPPAR

Defina la URL de la Base de Datos y el nombre de su Usuario

Recordatorio: Carnet es su NÚMERO DE CARNET, no la palabra car net

Con lo anterior aparecerá la siguiente Pantalla, la cual indicara si la conexión a la Base de Datos se ha realizado y entonces presione el BotónOK.

5) Haga la conexión a su Base de Datos (clic derecho del ratón) que contiene como nombre su número de carnet.

Presione el botón OK y aparecerá lo siguiente:

6) Haga una Java Aplicación Desktop, Seleccionando la Categoría Java y seleccionando el tipo de proyecto como se muestra en la figura

7) Como nombre del Proyecto escriba Alumnos, seleccione como ubicación del proyecto la carpeta que contiene su número de carnet, seleccione la Database Application y después presione el botón Next >.

8) Ahora procedemos a Seleccionar laDatabase Connection y laDatabaseTable, como se muestra a continuación,

seleccionando la tabla alumno que fue creada en la guía anterior.

10) Reconozca el entorno de Desarrollo para Aplicaciones Desktop.

11) Configuración de Botones, se les hará el siguiente cambio a los botones; ubíquese en cada botón y cámbieles el nombre oprimiendo el botón derecho del ratón seleccione el menú emergente properties, ubíquese en la propiedad text y cambie el nombre a cada botón tal como se muestra en la siguiente figura.

12) Una vez que se ha realizado el cambio de nombre para los botones, seleccione el objeto TextField para el Label Sexo y elimine ese objeto.

13) Utilizando la vista Design y la paleta (Palette) de controles de NetBeans, se procederá a realizar el siguiente cambio a su formulario, tome el objeto Combo Box y colóquelo donde estaba ubicado el objeto TextField para el objeto Label Sexo.

La siguiente figura muestra como deberá estar su formulario en estos momentos

 Ahora procedemos a personalizar el nuevo objeto colocado en el formulario en el paso anterior

14) Ubíquese en el objeto Combo Box y presione el botón derecho del Mouse, seleccione la opción

propertiesdel menú emergente y realice los siguientes cambios:

En la propiedad name colóquele como nombre sexoField

En la propiedad model escriba M, F

15) Ubíquese en la pestaña Binding y realice los cambios para las propiedadesselectedItem y enabled, tal como se muestra en la figura

16) Proceda a configurar el objeto Combo Box sexoField en la pestaña Code, modifique la propiedad

VariableName.

17) Ahora proceda a ejecutar el proyecto tal como se describe a continuación; ubíquese en el proyecto  Alumnos como se muestra en la siguiente figura

Seleccione este icono para compilar el proyecto

18) Al ejecutar la Aplicación Desktop aparecerá algo similar a la siguiente figura, efectué algunas pruebas, como ingresar nuevos datos, modificando datos existentes y borrar registros.

DATOSPERSONALES Nombre  Apellidos Fechanac Telefono Salario

E

 j

e

cicio 2

Creación de Mantenimiento en

forma manual

(código

puro,

sin

a

sis

t

en

t

es).

Este Mantenimiento hace la creación de una tabla adicional a su esquema de Base de Datos, Esta Tabla es DatosPersonales. Char(20) Char(25) Date Char(10) Float

1) Cree un nuevo proyecto Java Application (No Web), nómbrelo pruebajdbcmanual, ubíquelo en la carpeta que

tiene como nombre su número de carnet; en el Create Main Class (Clase Principal) digitePruebaManual, tal como se muestra en la figura

2) Agregue el JAR de MySQL al proyecto; ubíquese en el objeto Libraries presione el botón derecho del Mouse y

seleccione el ítem del menú emergente Add JAR/Folder… como se muestra a continuación

Busque la carpeta

C:\Ar chivos de programa\Apache Sof twar eFoundation\ApacheTomcat 6.0.16\lib

Seleccione el driver de conexión para MySQL

Después de agregar el driver para MySQL, el proyecto quedará como muestra la siguiente figura

3) Este código de preferencia, cópielo y péguelo integro a su clase principal de la aplicación

package pruebajdbcmanual;

import java.util.*; import java.text.*;import java.awt.*;import java.sql.*;

import java.awt.event.*;  Ajuste la cadena de conexión a su BD

class PruebaManualextends Frame implements ActionListener {Button crear, ver, insertar, cerr ar ;

TextField infor macion;

Panel pr incipal;Connectionconexion;

String Str ingConect=" jdbc:mysql://localhost:3306/car net?user =r oot";

PruebaManual( ) { super ("Datos Per sonales"); setSize(220,120);

pr incipal=new Panel(); crear=new Button("Cr ear "); cr ear .add ActionListener (this); ver =new Button("Mostr ar "); ver .add ActionListener (this);

insertar=newButton("Inser tar ");

inser tar .add ActionListener (this); cerrar=new Button("Cerr ar "); cerr ar .add ActionListener (this); infor macion=new TextField(20);

pr incipal.add(infor macion); pr incipal.add(cr ear ); pr incipal.add(inser tar );

pr incipal.add(ver ); pr incipal.add(cerr ar ); addWindowListener(new

Cerr ar ());

pr incipal.setBackgr ound(SystemColor .contr ol);

add(pr incipal); setVisible(tr ue); try {

Class.for Name("com.mysql. jdbc.Dr iver ").newInstance(); }//tr ycatch(Exception e) {

infor macion.setText("No se pudo cargarel DriverJDBC"); }// catch

}//Constructor datosper sonales

private void Crear_tabla() {

Statementsentencia ;

try { conexion=Dr iver Manager .getConnection(Str ingConect); sentencia=conexion.cr eateStatement();

try{

sentencia.executeUpdate("DROP  TABLE IF EXISTS DATOSPERSONALES"); } // try inter no

catch(SQLExceptione){

informacion.setText("Error al Borrar la tabla"); System.out.pr intln(e);

}// catch inter no

sentencia.executeUpdate("CRE ATE  TABLE DATOSPERSONALES ("+ "NOMBRE CH AR(20),"+

" APELLIDOS VARCH AR(25),"+

"FECH A_NAC DATE Not Null,"+ //Not Null significa que los datos son obligator ios

"TELEFONO CH AR(10),"+ "SAL ARIO  FLOAT )");

// Creala Llave Primaria de la Tabla

sentencia.executeUpdate(" ALTER TABLE DATOSPERSONALES " + " ADD CONSTRAINT PK_DATOSPERSON " +

"PRIM ARY KEY USING BTREE (Nombr e, Apellidos)" ); infor macion.setText("Tabla Cr eada");

conexion.close() ;

} // try exter no catch(SQLExceptione){ }

} // Cr ear  _ tabla

public void actionPerformed(ActionEvent e) {String

com=e.getActionCommand() ;

if("Crear".equals(com)) {

infor macion.setText("") ;

Crear_tabla(); }// ifCr ear else

if ("Insertar".equals(com)) { new Insertar(this) ;

}// if Inser tar else

if ("Mostr ar ".equals(com)) { new Ver (this);

} // if Ver else {

dispose(); System.exit(0);

}

} // actionPer for med

class Cerrarextends WindowAdapter {

public void windowClosing(WindowEvente) {

dispose(); System.exit(0);

}// windowClosing } //Cerr ar 

public static void main(String ar gs[]) { new Pr uebaManual();

}// main

} //datosper sonales

class Insertarextends Dialog implements ActionListener { private Connectionconexion;

private Button incluir ,ter minar ;

private TextField nombr e,apellidos,fech _ nac,telefono, salario ;

Insertar(Framef)

{

super(f,"InsertarDatos",tr ue);

setSize(320,210); nombr e=new TextField(20); apellidos=new TextField(25); fech _ nac=new TextField(10); telefono=new

TextField(10); salar io=new TextField(12); incluir =new

Button("Incluir ");

incluir .add ActionListener (this);

terminar=new Button("Ter minar "); ter minar .add ActionListener (this); Panel P_Datos=newPanel();

P_Datos.add(new Label("Nombr e : "));

P _Datos.add(nombr e);

P_Datos.add(new Label(" Apellidos: "));

P _Datos.add(apellidos);

P_Datos.add(new Label("FechaNacimiento:")); //Formatoyyyy-mm-dd P _Datos.add(fech _ nac);

P_Datos.add(new Label("Telefono : "));

P _Datos.add(telefono);

P_Datos.add(new Label(" ")); P_Datos.add(new Label("Salario : "));

P _Datos.add(salar io);

P_Datos.add(new Label(" "));

P _Datos.add(incluir );

P _Datos.add(ter minar );

nombr e.setEditable(tr ue);

apellidos.setEditable(tr ue); fech_nac.setEditable(true); telefono.setEditable(tr ue);

salar io.setEditable(tr ue);

add(P _Datos); setVisible(tr ue); }

privatevoid insertar_fila() {

Statementsentencia;

String Str ingConect=" jdbc:mysql://localhost:3306/car net?user =r oot"; tr y{

conexion=Dr iver Manager .getConnection(Str ingConect); sentencia=conexion.cr eateStatement();

String sql_ add="INSERT  INTO DATOSPERSONALES VALUES (' " +

nombr e.getText().toUpper Case() + "', '" +

apellidos.getText().toUpper Case() + "','"+

fech_nac.getText()+"','" +telefono.getText() +"', "

+ salar io.getText()+")" ; sentencia.executeUpdate(sql_ add); }//tr y

catch(SQLExceptione){ } }// insertar_fila

public void actionPerformed(ActionEvent e) {

String com=e.get ActionCommand();

if ("Incluir ".equals(com)) { inser tar  _fila(); nombr e.setText(""); apellidos.setText(""); fech _ nac.setText(""); telefono.setText(""); salar io.setText(""); }else { if(conexion!=null) { try { conexion.close(); }catch(SQLExceptionex) { } }// ifdispose(); } // else }// actionPer for med }//Inser tar 

class Verextends Dialog implements ActionListener { private Connectionconexion;

private ResultSet r esultado;

private Button siguiente,terminar, anterior, primero, ultimo;

private TextField nombre,apellidos, fech_nac, telefono, salario;

Ver(Framef) { super(f,"Mostrar Datos",tr ue); setSize(330,210); nombre=new TextField(20); apellidos=new TextField(25); fech_nac=new TextField(10); telefono=new TextField(10); salar io=new TextField(12);

anterior=new Button(" Anter ior ");

anter ior .add ActionListener (this);

siguiente=new Button("Siguiente"); siguiente.add ActionListener (this); primero=new Button("Pr imer o");

pr imer o.add ActionListener (this);

ultimo=new Button("Ultimo");

ultimo.add ActionListener (this);

terminar=new Button("Finalizar "); ter minar .add ActionListener (this); Panel

P_Datos=newPanel();

P_Datos.add(new Label("Nombr e :"));

P _Datos.add(nombr e);

P_Datos.add(new Label(" Apellidos:"));

P _Datos.add(apellidos);

P_Datos.add(new Label("Fecha Nacimiento:”));

P _Datos.add(fech _ nac);

P_Datos.add(new Label(" ")); P_Datos.add(new Label("Telefono : "));

P _Datos.add(telefono);

P_Datos.add(new Label(" ")); P_Datos.add(new Label("Salario : "));

P _Datos.add(salar io);

P_Datos.add(new Label(" "));

P _Datos.add(anter ior );

P _Datos.add(siguiente);

P _Datos.add(pr imer o); P _Datos.add(ultimo);

P _Datos.add(ter minar );

add(P _Datos);

nombr e.setEditable(f alse);

apellidos.setEditable(f alse); fech _ nac.setEditable(f alse); telefono.setEditable(f alse); salar io.setEditable(f alse); mostr ar ();

setVisible(tr ue); }// Constructor Ver 

public void actionPerformed(ActionEvente) { String

com=e.get ActionCommand(); if ("Siguiente".equals(com))

siguiente(); else

if (" Anter ior ".equals(com))

anter ior (); else

if ("Pr imer o".equals(com))

Pr imer o();

else

Ultimo(); else { if (conexion!=null) { try { conexion.close(); }//tr y catch(SQLExceptionex){ } } // if conexion dispose(); }// else } //actionPer for med

private void mostrar() {

Statementsentencia;

String Str ingConect=" jdbc:mysql://localhost:3306/car net?user =r oot"; try{

conexion=Dr iver Manager .getConnection(Str ingConect); sentencia=conexion.cr eateStatement();

String sql_str ="SELECT * FROM DATOSPERSONALES ";

r esultado=sentencia.executeQuer y(sql_str ); siguiente();

}//tr y

catch(SQLExceptione){ } }// mostr ar 

privatevoid ver  _Datos(){

Locale locales = new Locale("en","US") ; NumberFormat currencyFormatter =

Number For mat.getCurr encyInstance(locales); try {

String str_nomb= r esultado.getStr ing("NOMBRE");

nombr e.setText(str  _ nomb.toUpper Case());

String str_apell = r esultado.getStr ing(" APELLIDOS");

apellidos.setText(str  _ apell.toUpper Case());

String sfecha = r esultado.getStr ing("FECH A_NAC"); fech _ nac.setText(sfecha.substr ing(8,10) + "/" +

sfecha.substr ing(5,7) + "/"  + sfecha.substr ing(0,4)) ; telefono.setText(r esultado.getStr ing("TELEFONO")); String svalor= r esultado.getStr ing("SAL ARIO");

float nvalor =Float.par seFloat(svalor );

String moneda = curr encyFor matter .for mat(nvalor ); salar io.setText(moneda);

}catch (SQLException e){ } } // ver  _Datos

privatevoid siguiente() {

try {

if (r esultado.next()) ver  _Datos();

}catch(SQLExceptione){ }catch(Exception ex){ } } // siguiente

privatevoid anterior() {

try {

if (r esultado.pr evious()) ver  _Datos();

resultado.refreshRow() ; }//tr y

catch(SQLExceptione){ }catch(Exceptionex){ } } // anter ior 

privatevoid Primero() {

try {

if (r esultado.fir st()) ver  _Datos();

}catch(SQLExceptione){ }catch(Exception ex){ } } // Pr imer o

privatevoid Ultimo() {

try {

if

(r esultado.last()) ver  _Datos(

);

}catch(SQLExceptione){ }catch(Exception ex){ } } // Ultimo

} // class Ver 

4) Compile su programa y Ejecútelo

5) Presione Clic en el botón Crear, por lo que aparecerá el mensaje “Tabla Creada” Presione Clic en el botón Insertar para Agregar Registros a la Tabla

Para Guardar el Registro presione el botón

Para Guardar el Registro presione el botón ““Incluir Incluir ””,, recuerde que el campo fecha de nacimiento el formato derecuerde que el campo fecha de nacimiento el formato de MySQL es YYYY-MM-DD

MySQL es YYYY-MM-DD

6)

6) Agregue por lo Agregue por lo menos cinco Regmenos cinco Registros adicionales.istros adicionales.

 Al Finalizar de

 Al Finalizar de digitar los datos (registros) digitar los datos (registros) presione el botón presione el botón TerminarTerminar

7)

7) Presione Clic en el boPresione Clic en el botón Mostrar para Navegar por los registros que contiene la ttón Mostrar para Navegar por los registros que contiene la tablaabla

8)

8) Si desea verificar Si desea verificar si los resi los registros fueron igistros fueron i ntroducidos a la base ntroducidos a la base de datos, ubíquese de datos, ubíquese en la pesten la pestaña aña SeSer r vices,vices, localice la conexión a su Base de Datos, verifique si fue creada la tabla y si contiene los registros que Ud digito, localice la conexión a su Base de Datos, verifique si fue creada la tabla y si contiene los registros que Ud digito, como muestra la figura siguiente.

JasperReport ,I

JasperReports

JasperReports  es una herramienta de creación de informes en Java que tiene la habilidad de entregar contenido  es una herramienta de creación de informes en Java que tiene la habilidad de entregar contenido enriquecido al monitor, a la impresora o a ficheros PDF, HTML, XLS, CSV y XML.Está escrito completamente en Java y enriquecido al monitor, a la impresora o a ficheros PDF, HTML, XLS, CSV y XML.Está escrito completamente en Java y puede ser usado en gran variedad de aplicaciones de Java, incluyendo J2EE o aplicaciones web, para generar contenido puede ser usado en gran variedad de aplicaciones de Java, incluyendo J2EE o aplicaciones web, para generar contenido dinámico. Su propósito principal es ayudar a crear documentos de tipo páginas, preparados para imprimir en una forma dinámico. Su propósito principal es ayudar a crear documentos de tipo páginas, preparados para imprimir en una forma simple y flexible. JasperReports se usa comúnmente con iReport, un

simple y flexible. JasperReports se usa comúnmente con iReport, un front-end front-end  gráfico de código abierto para la edición gráfico de código abierto para la edición de informes.

de informes.

2. Herramientas para el Desarrollo 2. Herramientas para el Desarrollo

Netbeans 6.x

Netbeans 6.x (Puede utilizar esta versión e inclusive la versión  (Puede utilizar esta versión e inclusive la versión mas actual (Al momento de crear este manual mas actual (Al momento de crear este manual es la 6.8)).es la 6.8)).

Adobe Reader:

Adobe Reader: Este será utilizado para ver nuestros reportes que estarán en formato PDF. Aunque en esta ocasión no Este será utilizado para ver nuestros reportes que estarán en formato PDF. Aunque en esta ocasión no es indispensable ya que los visualizaremos a través del Jasper Viewer.

es indispensable ya que los visualizaremos a través del Jasper Viewer.

MySQL 5.0:

MySQL 5.0: Sera el encargado de alojar a nuestra base de Datos. Sera el encargado de alojar a nuestra base de Datos.

Ireport y JasperReports 2.0.4

Ireport y JasperReports 2.0.4 (o Superior en este momento 3.0.X): El primero será el  (o Superior en este momento 3.0.X): El primero será el entorno grafico que nos ayudara aentorno grafico que nos ayudara a crear el Reporte, mientras que de el segundo utilizaremos las librerías que nos ayudaran a compilar y ejecutar el reporte crear el Reporte, mientras que de el segundo utilizaremos las librerías que nos ayudaran a compilar y ejecutar el reporte que son las siguientes:

que son las siguientes:

3. Librerías a Utilizar ( Bibiotecas ) 3. Librerías a Utilizar ( Bibiotecas )

•commons •commons-beanutils-1.7-beanutils-1.7 •commons •commons-collections-2.1-collections-2.1 •commons •commons-digester-1.7-digester-1.7 •commons •commons-javaflow-20060411-javaflow-20060411 •commons •commons-logging-1.0.2-logging-1.0.2 •jasperreports •jasperreports-2.0.4-2.0.4

••itext-1.3.1itext-1.3.1 (Importante tener esta librería ya que es la encargada  (Importante tener esta librería ya que es la encargada de generarde generar nuestro reporte en PDF y otros formatos)

nuestro reporte en PDF y otros formatos)

••MySQL MySQL Connector Connector para para JAVAJAVA (mysql-connector-java-5.0.7-bin): (mysql-connector-java-5.0.7-bin): este este eses nuestro puente JDBC que nos permitirá la conexión entre el

nuestro puente JDBC que nos permitirá la conexión entre el servidor de baseservidor de base de datos y las JSP (viene

de datos y las JSP (viene incluido en Netbeans).incluido en Netbeans). •Y para esta

•Y para esta versión por supuesto Necesitamos elversión por supuesto Necesitamos el PLUGIN PLUGIN  para para Netbeans,Netbeans, este solo funciona para versiones superiores de la 6.0

este solo funciona para versiones superiores de la 6.0

4. ¿Dónde conseguir el

4. ¿Dónde conseguir el SoftwarSoftware?e?

Todo el Software utilizado es Open Source y puede descargarlo desde: Todo el Software utilizado es Open Source y puede descargarlo desde: http://www.netbeans.org

http://www.netbeans.org NetbeaNetbeans 6.0 o superior y en la seccns 6.0 o superior y en la secc ion dion d ee PLUGIPLUGINS enconNS encon trartrara el da el d ee IReport 

IReport 

http://dev.mysql.com/downloads/

http://dev.mysql.com/downloads/ MySQL 5.0, Conector para Java yMySQL 5.0, Conector para Java y Herramientas Graficas.Herramientas Graficas. http://ireport.sourceforge.net

http://ireport.sourceforge.net IreportIreport

4. Caso de Estudio 4. Caso de Estudio

Para realizar este tutorial, por ahora solo utilizaremos una tabla, y nuestro reporte se generara a partir de recibir un Para realizar este tutorial, por ahora solo utilizaremos una tabla, y nuestro reporte se generara a partir de recibir un parámetro, si recuerda en el tutorial pasado lo generábamos a partir de una vista y no recibía parámetros, para este parámetro, si recuerda en el tutorial pasado lo generábamos a partir de una vista y no recibía parámetros, para este sencillo

sencillo caso caso recibirá recibirá como como parámetro parámetro la la matricula matricula de de un un estudiante, estudiante, y y utilizaremos utilizaremos única única y y exclusivamente exclusivamente el el IReportIReport que instalaremos dentro de Netbeans, si lo desea puede consultar el manual anterior disponible en esta misma sección que instalaremos dentro de Netbeans, si lo desea puede consultar el manual anterior disponible en esta misma sección para verificar el otro reporte.

para verificar el otro reporte.

Instalación del PLUGIN Instalación del PLUGIN

Para realizar este Ejemplo, por ahora solo utilizaremos una tabla, y nuestro reporte se generara a partir de recibir un Para realizar este Ejemplo, por ahora solo utilizaremos una tabla, y nuestro reporte se generara a partir de recibir un parámetro, para este sencillo caso recibirá como parámetro la matricula de un estudiante, y utilizaremos única y parámetro, para este sencillo caso recibirá como parámetro la matricula de un estudiante, y utilizaremos única y exclusivamente

exclusivamente el el IReport IReport que que instalaremos instalaremos dentro dentro de de NetbeansNetbeans

Paso 1 Paso 1

 Abra su Netbeans IDE, recuerde que este plugin solo se instala en versiones superiores a la 6.0, una vez abierto haga clic en el menú Tools y Seleccione Plugins

Paso 2

 Ahora haga clic en la pestaña Downloaded y seguidamente en el botón Add Plugins

Paso 3

 Ahora localice la ubicación del archivo con extensión NBM y después haga clic en el botón abrir  A continuación nuestro complemento estará listo para instalarse, notara que aparece la descripción

Una vez que empiece la instalación aparecerá un Wizard que le guiara, solo haga clic en siguiente y acepte los términos de la licencia. Existe la posibilidad de que Netbeans no lo pueda validar, para que la instalación continúe solo haga clic en continue.

Paso 5

Listo, nuestro IReport se encuentra Instalado, para finalizar haga clic en la pestaña Installed  y busque el nuevo complemento el categoría Tools

Listo

Como podrá darse cuenta su Netbeans a cambiado un poco de apariencia, ya que se agregaron varios componentes como por ejemplo los orígenes de datos (data sources) de IREPORT, además de las consolas de salida.