SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Ejemplo de base de datos y reports con jasper report
Abrimos netbeans (esta es la versión 8.1)
Creamos un proyecto nuevo
Creamos un JFrame en el empaquetado, si este no existe no hay problema ya que es solo un
ejemplo demostrativo.
En ese JFrame (que llamaremos Formulario1) colocamos un botón llamado Reporte para enlazar al
reporte PDF en un visor.
Para que nos abra el visor con el reporte que vamos a incorporar, debemos ya tener creado una
clase de Conexcion a base de datos (ya existente) porque necesitamos extraer la información de
ella, aquí la base de datos sin normalizar la conforma una tabla llamada bd, la trabajamos en mysql
-- phpMyAdmin SQL Dump
-- version 4.5.0.2
-- http://www.phpmyadmin.net
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 19-01-2016 a las 14:38:54
-- Versión del servidor: 10.0.17-MariaDB
-- Versión de PHP: 5.5.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS
*/;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de datos: `bd`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `alumnos`
--
CREATE TABLE `alumnos` (
`id` int(11) NOT NULL,
`cedula` varchar(20) NOT NULL,
`nombre` varchar(50) NOT NULL,
`nota1` float NOT NULL,
`nota2` float NOT NULL,
`nots3` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Volcado de datos para la tabla `alumnos`
--
INSERT INTO `alumnos` (`id`, `cedula`, `nombre`, `nota1`, `nota2`,
`nots3`) VALUES
(1, '111111', 'ana', 12, 18, 20),
(2, '2222', 'bernardo', 30, 30, 40),
(3, '3333', 'carlina', 2, 3, 4),
(4, '44444', 'daniel', 22, 21, 32),
(5, '6666', 'felicia', 11, 0, 0),
(6, '777', 'gerardo', 28, 29, 39),
(7, '8888', 'henan', 3, 7, 8),
(8, '999', 'irina', 7, 8, 9),
(9, '101010', 'julia', 3, 22, 21),
(10, '11 11 11', 'kiko', 7, 6, 4);
--
-- Õndices para tablas volcadas
--
--
-- Indices de la tabla `alumnos`
--
ALTER TABLE `alumnos`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `cedula` (`cedula`);
--
-- AUTO_INCREMENT de las tablas volcadas
--
--
-- AUTO_INCREMENT de la tabla `alumnos`
--
ALTER TABLE `alumnos`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Como ven, la tabla que se llamó alumnos ya tiene algunos registros, está en localhost, el usuario es
root y no tiene clave.
Para crear la clase de conexión llamamos en librería la misma que permite la conexión con mysql
Esta es la clase de conexcion
Y este su código
import java.awt.HeadlessException;
import java.sql.*;
import javax.swing.JOptionPane;
public class Conexcion {
public Connection con=null;
public Statement stat=null;
public ResultSet reg=null;
public Connection conectar(){
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost/bd","root","");
} catch(ClassNotFoundException | SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null,"No Conectado");
System.exit(0);
}
return con;
}
public void manejar(Connection con, String sql){
try {
stat=con.createStatement();
stat.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"DATOS INCLUIDOS");
}catch(SQLException e){
JOptionPane.showMessageDialog(null,"DATOS NO INCLUIDOS");
}
}
public ResultSet leer(Connection con,String query) {
try{
stat=con.createStatement();
reg=stat.executeQuery(query);
} catch (SQLException e) {
}
return reg;
}
}
Como se observa, se tienen tres variables importantes, una de tipo Connection para conectar al
servidor y la base de datos mediante la librería que se incorporó previamente
(com.mysql.jdbc.Driver), una variable para la iclusión y modificación de registros en alguna tabla
de la base de datos mediante instrucciones sql como: INSERT INTO ‘nombre’_tabla(campos de la
tabla) VALUES (datos a incorporar) entre otras que ya conocen, que es de tipo Statement y una de
tipo ResultSet para realizar consultas o querys con SELECT campos_de_tabla WHERE condiciones.
Para probar si se conecta a la base de datos, se puede utilizar el JFrame con el botón para
incorporar información, a continuación se configura el Formulario1 y se utiliza el botón para
incorporar información y después revisamos la base de datos a ver si funciona, si se observan los
datos que están en la tabla
Hay 10 registros, el último es KIKO.
Al hacer en el diseñador dobleclick sobre el botón se genera el siguiente evento de botón en el
source
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
Lo primero es verificar si la clase se encuentra en el mismo empaquetado, en caso que no sea así,
se debe importar la clase Conexcion e instanciarla para poder hacer uso de sus métodos, esto se
hace antes del inicio de la class. Y se escribe
Import Nombre_Empaquetado_donde_se_encuentra_ Conexcion.Conexcion;
Solo si se encontrara en otro empaquetado.
Antes de los eventos se puede instanciar la class Conexcion
Conexcion conexcion=new Conexcion();
Connection c=conexcion.conectar();
String query;
Dentro del evento de botón, se incorpora el dato de forma directa ya que es una prueba y la
finalidad es crear el reporte. En query se coloca la instrucción de insertar un registro.
query="INSERT INTO alumnos VALUES (id,'24332670','zara',12,23,33)";
Hay un alerta en la línea 63, esto es porque se declaró una variable tipo Connection y esta no está
incorporada al código, se hace click en el ícono para ver las opciones.
Se selecciona la opción donde se importa la librería Connection, esto queda así.
Y desaparece el alerta.
En la class Main en el método principal, instanciamos el formulario y lo hacemos visible para
ejecutarlo.
Formulario1 form1=new Formulario1();
form1.setVisible(true);
quedando de esta forma
Y se ejecuta.
Como no se creó la interfaz gráfica para ver los resultados se revisa la base de datos actualizada.
Después de ejecutado, con el JOpionPane da el mensaje de datos incluidos, posteriormente se
cierra el formulario
Se actualiza base de datos para verificar que el registro fue incorporado.
Y se observa que si se actualiza. Para generar el reporte se debe instalar un plugin de la página
oficial de netbeans en su versión mas actualizada.
Se descarga y se instala.

Weitere ähnliche Inhalte

Was ist angesagt?

proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysql
BrenditaLr
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
Whaleejaa Wha
 
Comando para el manejo y organización de archivos windows
Comando para el manejo y organización de archivos windowsComando para el manejo y organización de archivos windows
Comando para el manejo y organización de archivos windows
Luis Enrrique Bracho
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
still01
 
Trabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iiTrabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica ii
rafaelrojas91
 
Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1
Rodolfo Alcantara Rosales
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
José Pedro Avila
 

Was ist angesagt? (18)

Subconsultas
SubconsultasSubconsultas
Subconsultas
 
Examen final de base de datos ii solucionado
Examen final de base de datos ii solucionadoExamen final de base de datos ii solucionado
Examen final de base de datos ii solucionado
 
Java swing y awt
Java swing y awtJava swing y awt
Java swing y awt
 
Archivos Secuenciales Indexados
Archivos Secuenciales IndexadosArchivos Secuenciales Indexados
Archivos Secuenciales Indexados
 
proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysql
 
Introducción a las bases de datos con access
Introducción a las bases de datos con accessIntroducción a las bases de datos con access
Introducción a las bases de datos con access
 
Base de datos para la farmacia "José"
Base de datos para la farmacia "José"Base de datos para la farmacia "José"
Base de datos para la farmacia "José"
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
Comando para el manejo y organización de archivos windows
Comando para el manejo y organización de archivos windowsComando para el manejo y organización de archivos windows
Comando para el manejo y organización de archivos windows
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Base de datos_zapateria_merida
Base de datos_zapateria_meridaBase de datos_zapateria_merida
Base de datos_zapateria_merida
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Trabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iiTrabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica ii
 
Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
 
Puerto Usb
Puerto UsbPuerto Usb
Puerto Usb
 

Andere mochten auch

Hunger games Book Trailer by Montannah
Hunger games Book Trailer by MontannahHunger games Book Trailer by Montannah
Hunger games Book Trailer by Montannah
harristeach
 
Auditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónAuditoría de sistemas de información presentación
Auditoría de sistemas de información presentación
jbersosa
 
Company profile aeu-2011_q2
Company profile aeu-2011_q2Company profile aeu-2011_q2
Company profile aeu-2011_q2
Advantech Europe
 

Andere mochten auch (20)

Main
MainMain
Main
 
Try catch
Try catchTry catch
Try catch
 
Prog iv
Prog ivProg iv
Prog iv
 
Hunger games Book Trailer by Montannah
Hunger games Book Trailer by MontannahHunger games Book Trailer by Montannah
Hunger games Book Trailer by Montannah
 
Английский христианский лагерь «еммануил»
Английский христианский лагерь «еммануил»Английский христианский лагерь «еммануил»
Английский христианский лагерь «еммануил»
 
Auditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónAuditoría de sistemas de información presentación
Auditoría de sistemas de información presentación
 
Company profile aeu-2011_q2
Company profile aeu-2011_q2Company profile aeu-2011_q2
Company profile aeu-2011_q2
 
Auditoria informatica
Auditoria informaticaAuditoria informatica
Auditoria informatica
 
Asd
AsdAsd
Asd
 
Asd
AsdAsd
Asd
 
Introduction to Quiet System Technology
Introduction to Quiet System TechnologyIntroduction to Quiet System Technology
Introduction to Quiet System Technology
 
India TV Guide for Android & iPhone
India TV Guide for Android & iPhoneIndia TV Guide for Android & iPhone
India TV Guide for Android & iPhone
 
Clases jasper report
Clases jasper reportClases jasper report
Clases jasper report
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignaciones
 
SCJP, Clase 4: Operadores
SCJP, Clase 4: OperadoresSCJP, Clase 4: Operadores
SCJP, Clase 4: Operadores
 
Modulos en Python
Modulos en PythonModulos en Python
Modulos en Python
 
Clase n°2 3-4 java
Clase n°2 3-4 javaClase n°2 3-4 java
Clase n°2 3-4 java
 
Pag Demanda Reemplazamiento
Pag Demanda ReemplazamientoPag Demanda Reemplazamiento
Pag Demanda Reemplazamiento
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Equipos medicos1
Equipos medicos1Equipos medicos1
Equipos medicos1
 

Ähnlich wie Ejemplo de base de datos y reports con jasper report

Como crear un proyecto en visual Studio 2010
Como crear un proyecto en visual Studio 2010Como crear un proyecto en visual Studio 2010
Como crear un proyecto en visual Studio 2010
a9788398
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Boris Salleg
 
Cubo
CuboCubo
Cubo
karla
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
The Killer
 

Ähnlich wie Ejemplo de base de datos y reports con jasper report (20)

Conexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeansConexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeans
 
Ejemplo bbdd sqlite (android)
Ejemplo bbdd sqlite (android)Ejemplo bbdd sqlite (android)
Ejemplo bbdd sqlite (android)
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Base datosvisualc#express2008
Base datosvisualc#express2008Base datosvisualc#express2008
Base datosvisualc#express2008
 
Actualizacion de base de datos desde Visual Basic
Actualizacion de base de datos desde Visual Basic Actualizacion de base de datos desde Visual Basic
Actualizacion de base de datos desde Visual Basic
 
desarrollo en 3 capas VB
desarrollo en 3 capas VBdesarrollo en 3 capas VB
desarrollo en 3 capas VB
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando Netbeans
 
Formulario
FormularioFormulario
Formulario
 
Como crear un proyecto en visual Studio 2010
Como crear un proyecto en visual Studio 2010Como crear un proyecto en visual Studio 2010
Como crear un proyecto en visual Studio 2010
 
Base de datos con Visual Basic
Base de datos con Visual Basic Base de datos con Visual Basic
Base de datos con Visual Basic
 
Como conectar visual basic 6.0 a una base de datos microsoft sql server
Como conectar visual basic 6.0 a una base de datos microsoft sql serverComo conectar visual basic 6.0 a una base de datos microsoft sql server
Como conectar visual basic 6.0 a una base de datos microsoft sql server
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
 
Cubo
CuboCubo
Cubo
 
sqldeveloper2.pdf
sqldeveloper2.pdfsqldeveloper2.pdf
sqldeveloper2.pdf
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper report
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
 
284
284284
284
 
Lenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-proLenguaje de-programacion-iii-visual-fox-pro
Lenguaje de-programacion-iii-visual-fox-pro
 
Buenas
BuenasBuenas
Buenas
 

Mehr von jbersosa

Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891
jbersosa
 
Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...
jbersosa
 
Bases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportBases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper report
jbersosa
 
Continuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper reportContinuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper report
jbersosa
 
Simular un next del recordset en php de forma rudimentaria
Simular un next del recordset en php de forma rudimentariaSimular un next del recordset en php de forma rudimentaria
Simular un next del recordset en php de forma rudimentaria
jbersosa
 

Mehr von jbersosa (20)

Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standar
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Estructuras de control try catch
Estructuras de control try catchEstructuras de control try catch
Estructuras de control try catch
 
Clasen1java
Clasen1javaClasen1java
Clasen1java
 
Programación java1
Programación java1Programación java1
Programación java1
 
Tercercortesistop
TercercortesistopTercercortesistop
Tercercortesistop
 
Encapsulacion
EncapsulacionEncapsulacion
Encapsulacion
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principal
 
Auditoria 2
Auditoria 2Auditoria 2
Auditoria 2
 
Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891
 
Auditoria de sistemas (1)
Auditoria de sistemas (1)Auditoria de sistemas (1)
Auditoria de sistemas (1)
 
Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Php
PhpPhp
Php
 
Estructura de una red
Estructura de una redEstructura de una red
Estructura de una red
 
Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2
 
Bases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportBases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper report
 
Continuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper reportContinuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper report
 
Simular un next del recordset en php de forma rudimentaria
Simular un next del recordset en php de forma rudimentariaSimular un next del recordset en php de forma rudimentaria
Simular un next del recordset en php de forma rudimentaria
 
Prog iii tercer corte
Prog iii tercer corteProg iii tercer corte
Prog iii tercer corte
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

Anatomia y fisiologia de las gallinas ponedoraspptx
Anatomia y fisiologia de las gallinas ponedoraspptxAnatomia y fisiologia de las gallinas ponedoraspptx
Anatomia y fisiologia de las gallinas ponedoraspptx
 
PRODUCCIÓN DE CARNE BOVINA EL SALVADOR.pptx
PRODUCCIÓN DE CARNE BOVINA EL SALVADOR.pptxPRODUCCIÓN DE CARNE BOVINA EL SALVADOR.pptx
PRODUCCIÓN DE CARNE BOVINA EL SALVADOR.pptx
 
Presentación_las vitaminas para el ser humano.pptx
Presentación_las vitaminas para el ser humano.pptxPresentación_las vitaminas para el ser humano.pptx
Presentación_las vitaminas para el ser humano.pptx
 
anatomia y fisiologia de las gallinas ponedoras.pptx
anatomia y fisiologia de las gallinas ponedoras.pptxanatomia y fisiologia de las gallinas ponedoras.pptx
anatomia y fisiologia de las gallinas ponedoras.pptx
 
leyes del señor johan Gregorio Mendel.docx
leyes del señor johan Gregorio Mendel.docxleyes del señor johan Gregorio Mendel.docx
leyes del señor johan Gregorio Mendel.docx
 
Tipos de eventos en la banqueteria (1).pdf
Tipos de eventos en la banqueteria (1).pdfTipos de eventos en la banqueteria (1).pdf
Tipos de eventos en la banqueteria (1).pdf
 
Corella Guía Vegana Primera Edición Mayo 2024.pdf
Corella Guía Vegana Primera Edición Mayo 2024.pdfCorella Guía Vegana Primera Edición Mayo 2024.pdf
Corella Guía Vegana Primera Edición Mayo 2024.pdf
 
ALIMENTACION basadas en plantaas en deportistas
ALIMENTACION basadas en plantaas en deportistasALIMENTACION basadas en plantaas en deportistas
ALIMENTACION basadas en plantaas en deportistas
 

Ejemplo de base de datos y reports con jasper report

  • 1. Ejemplo de base de datos y reports con jasper report Abrimos netbeans (esta es la versión 8.1) Creamos un proyecto nuevo Creamos un JFrame en el empaquetado, si este no existe no hay problema ya que es solo un ejemplo demostrativo.
  • 2. En ese JFrame (que llamaremos Formulario1) colocamos un botón llamado Reporte para enlazar al reporte PDF en un visor. Para que nos abra el visor con el reporte que vamos a incorporar, debemos ya tener creado una clase de Conexcion a base de datos (ya existente) porque necesitamos extraer la información de ella, aquí la base de datos sin normalizar la conforma una tabla llamada bd, la trabajamos en mysql -- phpMyAdmin SQL Dump -- version 4.5.0.2 -- http://www.phpmyadmin.net -- -- Servidor: 127.0.0.1 -- Tiempo de generación: 19-01-2016 a las 14:38:54 -- Versión del servidor: 10.0.17-MariaDB -- Versión de PHP: 5.5.30 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Base de datos: `bd` --
  • 3. -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `alumnos` -- CREATE TABLE `alumnos` ( `id` int(11) NOT NULL, `cedula` varchar(20) NOT NULL, `nombre` varchar(50) NOT NULL, `nota1` float NOT NULL, `nota2` float NOT NULL, `nots3` float NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Volcado de datos para la tabla `alumnos` -- INSERT INTO `alumnos` (`id`, `cedula`, `nombre`, `nota1`, `nota2`, `nots3`) VALUES (1, '111111', 'ana', 12, 18, 20), (2, '2222', 'bernardo', 30, 30, 40), (3, '3333', 'carlina', 2, 3, 4), (4, '44444', 'daniel', 22, 21, 32), (5, '6666', 'felicia', 11, 0, 0), (6, '777', 'gerardo', 28, 29, 39), (7, '8888', 'henan', 3, 7, 8), (8, '999', 'irina', 7, 8, 9), (9, '101010', 'julia', 3, 22, 21), (10, '11 11 11', 'kiko', 7, 6, 4); -- -- Õndices para tablas volcadas -- -- -- Indices de la tabla `alumnos` -- ALTER TABLE `alumnos` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `cedula` (`cedula`); -- -- AUTO_INCREMENT de las tablas volcadas -- -- -- AUTO_INCREMENT de la tabla `alumnos` -- ALTER TABLE `alumnos`
  • 4. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; Como ven, la tabla que se llamó alumnos ya tiene algunos registros, está en localhost, el usuario es root y no tiene clave. Para crear la clase de conexión llamamos en librería la misma que permite la conexión con mysql
  • 5. Esta es la clase de conexcion
  • 6. Y este su código import java.awt.HeadlessException; import java.sql.*; import javax.swing.JOptionPane; public class Conexcion { public Connection con=null; public Statement stat=null; public ResultSet reg=null; public Connection conectar(){ try{ Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost/bd","root",""); } catch(ClassNotFoundException | SQLException | HeadlessException e){
  • 7. JOptionPane.showMessageDialog(null,"No Conectado"); System.exit(0); } return con; } public void manejar(Connection con, String sql){ try { stat=con.createStatement(); stat.executeUpdate(sql); JOptionPane.showMessageDialog(null,"DATOS INCLUIDOS"); }catch(SQLException e){ JOptionPane.showMessageDialog(null,"DATOS NO INCLUIDOS"); } } public ResultSet leer(Connection con,String query) { try{ stat=con.createStatement(); reg=stat.executeQuery(query); } catch (SQLException e) { } return reg; } }
  • 8. Como se observa, se tienen tres variables importantes, una de tipo Connection para conectar al servidor y la base de datos mediante la librería que se incorporó previamente (com.mysql.jdbc.Driver), una variable para la iclusión y modificación de registros en alguna tabla de la base de datos mediante instrucciones sql como: INSERT INTO ‘nombre’_tabla(campos de la tabla) VALUES (datos a incorporar) entre otras que ya conocen, que es de tipo Statement y una de tipo ResultSet para realizar consultas o querys con SELECT campos_de_tabla WHERE condiciones. Para probar si se conecta a la base de datos, se puede utilizar el JFrame con el botón para incorporar información, a continuación se configura el Formulario1 y se utiliza el botón para incorporar información y después revisamos la base de datos a ver si funciona, si se observan los datos que están en la tabla Hay 10 registros, el último es KIKO. Al hacer en el diseñador dobleclick sobre el botón se genera el siguiente evento de botón en el source private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } Lo primero es verificar si la clase se encuentra en el mismo empaquetado, en caso que no sea así, se debe importar la clase Conexcion e instanciarla para poder hacer uso de sus métodos, esto se hace antes del inicio de la class. Y se escribe
  • 9. Import Nombre_Empaquetado_donde_se_encuentra_ Conexcion.Conexcion; Solo si se encontrara en otro empaquetado. Antes de los eventos se puede instanciar la class Conexcion Conexcion conexcion=new Conexcion(); Connection c=conexcion.conectar(); String query; Dentro del evento de botón, se incorpora el dato de forma directa ya que es una prueba y la finalidad es crear el reporte. En query se coloca la instrucción de insertar un registro. query="INSERT INTO alumnos VALUES (id,'24332670','zara',12,23,33)"; Hay un alerta en la línea 63, esto es porque se declaró una variable tipo Connection y esta no está incorporada al código, se hace click en el ícono para ver las opciones.
  • 10. Se selecciona la opción donde se importa la librería Connection, esto queda así. Y desaparece el alerta. En la class Main en el método principal, instanciamos el formulario y lo hacemos visible para ejecutarlo. Formulario1 form1=new Formulario1();
  • 11. form1.setVisible(true); quedando de esta forma Y se ejecuta. Como no se creó la interfaz gráfica para ver los resultados se revisa la base de datos actualizada.
  • 12. Después de ejecutado, con el JOpionPane da el mensaje de datos incluidos, posteriormente se cierra el formulario Se actualiza base de datos para verificar que el registro fue incorporado. Y se observa que si se actualiza. Para generar el reporte se debe instalar un plugin de la página oficial de netbeans en su versión mas actualizada.
  • 13.
  • 14.
  • 15. Se descarga y se instala.