Laboratorio JDBC - Base de datos con Java



Documentos relacionados
GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

Sistema de Archivos en Java

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1)

Conexión SQL Server y C# (Consola)

Requisitos. Universidad ORT Arquitectura de Software

Practica 7 Conexión a su base de datos. Optativa II

3.- Desarrollo e implementación del sistema.

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

Práctica sobre compartición de instancias remotas.

JSP. MSc. Daniel Alejandro Yucra Sotomayor Pag Web Services. Laboratorio Nro. 11. Web Services con JAX-WS con MySQL. I. Competencia General:

Plugin para NetBeans que realiza migración de una base de datos postgresql a couchdb.

Desarrollo de Servicios Web con JBuilder

Programación Gambas 3 Prof: Mileti, P. Acceso a base de datos SQLite desde Gambas 3.

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Conectar Flash con Access usando MDM Zinc

Practica 11: Conexión de Java con Bases de datos Access

Tema: MAPEO OBJETO RELACIONAL (ORM) - ADODB

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

Número de Práctica: 1 Nombre de la Práctica: Comunicación Cliente Servidor Vía Sockets Java con Sistema Manejador de Bases de Datos

Manual de Instalación

4- Uso de sentencias para el envió y extracción de datos

Sistema para el alquiler, control de películas y clientes en una videotienda

Ingeniería del Software II. Curso 2003/2004. Enunciado de la práctica del Segundo parcial.

Tutorial Enterprise Architect 7.5 Versión en español

Programación Orientada a Objetos en C#.NET CAPÍTULO 5 H E R E N C I A. Ing. Bruno López Takeyas, M.C.

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

Práctica 02. Formularios

MANUALITO MS-SQL SERVER

%& %)& '$!%*+ $, %%%&$ %%

También añado a la clase Libro los siguientes métodos: (que programaré más adelante)

MODULO DE USUARIOS PARTE 1

Indicadores conceptos base EA constitución base Introducción a la programación de MT METATRADER, CONCEPTOS BÁSICOS DE PROGRAMACIÓN I

Video 2: Cómo Crear una plantilla para Generar Procedimientos Almacenados

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Mybatis: alternativa a Hibernate

Tutorial : Hacer Combos Dependientes tipo Departamento Ciudad en ASP. Net

TP Nº4 Android - SQLite Fecha Miércoles 2014/08/29 Profesor: Pablo Ulman (Polshu)

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / j a v a. p h p ]

Universidad Nacional de Luján Departamento de Ciencias Básicas Programación III

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN

CÓMO POSTULAR A UN PROGRAMA O CONCURSO EN EL SITIO WEB DE CORFO

Software de Comunicaciones (2) Manual de Usuario Consola

DOCUMENTACIÓN DE POWER BUILDER 11. CONSULTA DINAMICA Las consultas dinámicas se realizan cuando power builder no soporta una consulta SQL.

Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC)

Arquitectura y Diseño de Sistemas Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre de 2015

Patrones para persistencia (I) Ingeniería del Software II

Tutorial Servicios Web

Aprendiendo Netbeans Ing. Ricardo Morales 2011 NETBEANS (JAVA)

Día 2: Utilizando controles de datos en Visual Studio 2008.

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

Principales rutinas de mantenimiento

Creación de un sistema ABC

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Un segundo objetivo ha sido la creación de una interfaz de usuario robusta y clara que facilite al usuario el uso de dicho aplicativo.

myappgen Usted Construye la aplicación mientras la ejecuta

Administración Local Soluciones

IMPLEMENTACIÓN DE UN PROTOTIPO DE SOFTWARE DE E-LEARNING PARA LA ENSEÑANZA DE SQLSERVER UTILIZANDO MICROSOFT SILVERLIGHT

6.- Este software se instalara como una versión Demo con una duración de 25 días de uso. En el código de validación, se dejara la palabra Demo.

Swing 03 Introducción al Uso de Botones

Benemérita Universidad Autónoma del Estado de Puebla

Trabajos de Ampliación. Bases de datos NoSQL.

Programación Orientada a Objetos II. La Plataforma JDBC

Lazarus Free Pascal Compiler

Manual de JSP con MySQL

9- Procedimientos almacenados.

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Acceso a datos con ADO.NET 2.0 (sin asistentes)

myappgen Usted Construye la aplicación mientras la ejecuta

JDBC. Una mini-introducci. introducción

Manual de usuario Versión: 1.3 Edición: 05/02/2015 1

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Acceso a base de datos SQLite desde Gambas

MultiBase. Notas a la versión 3.4. BASE 100, S.A.

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Ejercicio 20. SQLite en Android. Android Con Java. Ejercicio 20. Uso de SQLite en Android. Curso de Android con Java

1.- Creamos un proyecto al que llamaremos MusicaMovil.

1. El entorno de desarrollo Eclipse

GUÍA DE TRABAJO GRADO 11 Programación de. Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

PHP Y BASES DE DATOS. Introducción a SQL

Práctica 4: Java Remote Method Invocation (RMI)

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

Formato para prácticas de laboratorio

PRACTICAS DE ANDROID 12 - Lanzar un segundo "Activity" y pasar parámetros Problema:

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Transcripción:

Laboratorio JDBC - Base de datos con Java Objetivos: Reconocer y realizar mantenimientos con Java y Base de datos. Implementar aplicaciones cliente servidor con Base de datos. Temas: Mantenimiento del modulo Gestionar Alumno.

Pre Requisitos: Utilizar el utilitario librería.jar que nos ayudara a realizar la conexión a una Base de Datos y utilizar componentes personalizados. Esta librería lo podemos encontrar en la siguiente ruta web: http://code.google.com/p/abaco-java- 2012/downloads/detail?name=proyectoABACO_17_12_2012.7z&can=2&q= Se debe contar con un modelo de Base datos y tener acceso a el para realizar este laboratorio. Se adjuntara un bk y si respectivo script del modelo de base datos que se encontrara en la siguiente ruta web: http://code.google.com/p/abaco-java- 2012/downloads/detail?name=proyectoABACO_17_12_2012.7z&can=2&q= Modelo de Base Datos: Por Jonathan A. Jurado Sandoval Página 2

Estructura del proyecto: El proyecto Sistema de matricula tiene la siguiente arquitectura: Descripción del proyecto: Paquetes: controlador: Aquí se colocan todos los controladores que serán llamados por las interfaces vista. dao: Aquí se colocan los query, insert, delete, update modelo: Modelo de persistencia de la BD. Vista: Aquí se colocan las interfaces que interactúa con el cliente. vista.imagenes: aquí se colocan las imágenes del proyecto. Librerías: jcalendar.jar: Librería que permite usar datapicker. sqljdbc.jar: Librería para conectarte a base de datos SQL Server. Pantalla principal: Esta pantalla principal se encuentra en el paquete vista del proyecto. Por Jonathan A. Jurado Sandoval Página 3

Para llamar a un JDialog se tiene que realizar lo siguiente: En el método generado se debe colocar lo siguiente: private void jmenuitem6actionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here new RegistrarAlumno(this, true).setvisible(true); Esta línea de código lo que realiza es llamar a la vista RegistrarAlumno.java Por Jonathan A. Jurado Sandoval Página 4

Mantenimiento del modulo gestionar Alumnos: Lo que realizara este modulo es registrar, buscar, eliminar y actualizar alumnos. Gestionar Alumno Paquete modelo: Se tiene que crear en el paquete modelo la clase Persona: package modelo; public class Persona { private String idpersona; private String nombres; private String apellidos; private String idtipodocidentidad; private String numerodocidentidad; private String fechanac; private String direccion; private String sexo; private String status; public String getidpersona() { return idpersona; public void setidpersona(string idpersona) { this.idpersona = idpersona; public String getnombres() { return nombres; public void setnombres(string nombres) { this.nombres = nombres; public String getapellidos() { return apellidos; public void setapellidos(string apellidos) { this.apellidos = apellidos; Por Jonathan A. Jurado Sandoval Página 5

public String getidtipodocidentidad() { return idtipodocidentidad; public void setidtipodocidentidad(string idtipodocidentidad) { this.idtipodocidentidad = idtipodocidentidad; public String getnumerodocidentidad() { return numerodocidentidad; public void setnumerodocidentidad(string numerodocidentidad) { this.numerodocidentidad = numerodocidentidad; public String getfechanac() { return fechanac; public void setfechanac(string fechanac) { this.fechanac = fechanac; public String getdireccion() { return direccion; public void setdireccion(string direccion) { this.direccion = direccion; public String getsexo() { return sexo; public void setsexo(string sexo) { this.sexo = sexo; public String getstatus() { return status; public void setstatus(string status) { this.status = status; Por Jonathan A. Jurado Sandoval Página 6

Ahora se creara la Clase Alumno.java: package modelo; public class Alumno { private Persona alumno; /** * @return the alumno */ public Persona getalumno() { return alumno; /** * @param alumno the alumno to set */ public void setalumno(persona alumno) { this.alumno = alumno; Paquete dao: Se creara la clase GestionarAlumnoDAO.java: /* * To change this template, choose Tools Templates * and open the template in the editor. */ package dao; import libreria.conexion; import modelo.alumno; import modelo.persona; /** * * @author Jonathan */ public class GestionarAlumnoDAO { public boolean actualizaralumno(alumno alumno){ Por Jonathan A. Jurado Sandoval Página 7

Conexion cn = new Conexion(); String sqlupdate="update Persona set "; sqlupdate+="nombres='"+alumno.getalumno().getnombres()+"', "; sqlupdate+="apellidos='"+alumno.getalumno().getapellidos()+"', "; sqlupdate+="direccion='"+alumno.getalumno().getdireccion()+"', "; sqlupdate+="fechanac='"+alumno.getalumno().getfechanac()+"'"; sqlupdate+=" where idpersona='"+alumno.getalumno().getidpersona()+"'"; int r1=cn.execcommand(sqlupdate); if(r1>0){ cn.close(1, 1, 1); return true; else{ return false; public boolean eliminaralumno(string idalumno) { Conexion cn = new Conexion(); int r1 = cn.execcommand("delete from alumno where idalumno=" + idalumno); if (r1 > 0) { int r2 = cn.execcommand("delete from persona where idpersona=" + idalumno); if (r2 > 0) { System.out.println("Se realizo la eliminacion del alumno " + idalumno + " con Exito"); return true; else { cn.rollback(); cn.close(1, 1, 1); return false; else { cn.rollback(); cn.close(1, 1, 1); return false; public boolean agregaralumno(alumno alumno) { boolean bagregaralumno = false; boolean bagregarpersona = agregarperona(alumno.getalumno()); String idpersona = ""; if (bagregarpersona) { idpersona = getidpersona(); Conexion cn = new Conexion(); if (idpersona!= null) { int resultalumno = cn.execcommand("insert into Alumno values('" + idpersona + "')"); if (resultalumno > 0) { bagregaralumno = true; Por Jonathan A. Jurado Sandoval Página 8

else { System.out.println("Error al ingresar Alumno contacte con el administrador"); cn.rollback(); else { System.out.println("Error al capturar idpersona contacte con el administrador"); cn.rollback(); cn.close(1, 1, 1); else { System.out.println("Error al agregar una persona contacte con el administrador"); return bagregaralumno; public boolean agregarperona(persona per) { Conexion cn = new Conexion(); int result = cn.execcommand("insert into Persona" + "(nombres,apellidos, idtipodocidentidad, numerodocidentidad, fechanac, " + "direccion, sexo, status) values" + "('" + per.getnombres() + "','" + per.getapellidos() + "','" + per.getidtipodocidentidad() + "'," + "'" + per.getnumerodocidentidad() + "','" + per.getfechanac() + "','" + per.getdireccion() + "','" + per.getsexo() + "'," + "'A')"); cn.close(1, 1, 1); if (result > 0) { return true; else { return false; public String getidpersona() { String idper = null; Conexion cn = new Conexion(); cn.execquery("select Max(idPersona) from Persona"); if (cn.getnext()) { idper = cn.getcol(1); cn.close(1, 1, 1); return idper; Por Jonathan A. Jurado Sandoval Página 9

Paquete Controlador: Se debe crear el controlador GestionarAlumnoControlador.java: package controlador; import dao.gestionaralumnodao; import modelo.alumno; /** * * @author Jonathan */ public class GestionarAlumnoControlador { GestionarAlumnoDAO dao=new GestionarAlumnoDAO(); public boolean agregaralumno(alumno alumno){ return dao.agregaralumno(alumno); public boolean eliminaralumno(string idalumno){ return dao.eliminaralumno(idalumno); public boolean actualizaralumno(alumno alumno){ return dao.actualizaralumno(alumno); Por Jonathan A. Jurado Sandoval Página 10

Paquete Vista: o Formulario Registrar Alumno Para realizar el registro de alumnos se debe crear la siguiente interface: Se debe usar el componente micombobox para mostrar los tipos de documentos desde la base de datos, para este fin se realiza lo siguiente: 1. Se debe jalar el componente micombobox al vista JDialog. 2. Se debe colocar en el constructor de clase lo siguiente: public RegistrarAlumno(java.awt.Frame parent, boolean modal) { super(parent, modal); initcomponents(); chargecombobox(); private void chargecombobox(){ micombobox1.setconsulta("select idtipodocidentidad, tipodocidentidad from tipodocidentidad"); 3. En el método chargecombobox() se debe llamar a micombobox1 y setear el método consulta con el query a realizar a la BD. Por Jonathan A. Jurado Sandoval Página 11

Para poder registrar un alumno se debe realizar la siguiente configuración al botón registrar: En el método generado se debe poner el siguiente código: private void jbutton1actionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: agregaralumno(jtextfield1.gettext(),jtextfield2.gettext(),micombobox1.getconsulta(), jtextfield4.gettext(), jtextfield5.gettext(), jcombobox2.getselecteditem().tostring(), jtextfield3.gettext()); private void agregaralumno(string nombres, String apellidos, String tipodoc, String numerodoc, String fechanac, String sexo, String direccion){ Persona per=new Persona(); per.setnombres(nombres); Por Jonathan A. Jurado Sandoval Página 12

per.setapellidos(apellidos); per.setidtipodocidentidad(tipodoc); per.setnumerodocidentidad(numerodoc); per.setfechanac(fechanac); per.setsexo(sexo); per.setdireccion(direccion); Alumno alum=new Alumno(); alum.setalumno(per); GestionarAlumnoControlador controller=new GestionarAlumnoControlador(); if(controller.agregaralumno(alum)){ MsgShow.informationMessage("Persona "+nombres+" agreagada correctamente", "Exito al Registrar"); else{ MsgShow.errorMessage("Persona "+nombres+" error al agregarlo", "Error al Registrar"); En el botón cancelar poner el siguiente código una vez generado el evento: private void jbutton2actionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: dispose(); Por Jonathan A. Jurado Sandoval Página 13

o Formulario Buscar y Eliminar Alumno Se debe crear la siguiente interface llamada MantenimientoAlumno.java En el botón Buscar se debe colocar la siguiente línea de código: private void jbtnbuscaractionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here String query="select" + " p.idpersona as IdAlumno, p.nombres as Nombres, p.apellidos as Apellidos, p.fechanac as FechaNac, p.direccion" + "tdi.tipodocidentidad as TipoDoc, p.numerodocidentidad as NumeroDoc, p.sexo as Sexo " + "from persona p, alumno a, tipodocidentidad tdi " + "where p.idpersona=a.idalumno and tdi.idtipodocidentidad=p.idtipodocidentidad and " + "p.nombres like '%"+jtxtnombres.gettext()+"%' and p.apellidos like '%"+jtxtapellidos.gettext()+"%' and " + "p.numerodocidentidad like '%"+jtxtnumdoc.gettext()+"%'"; if(!jcbxtiposexo.getselecteditem().equals("todos")){ query+=" and p.sexo='"+jcbxtiposexo.getselecteditem().tostring().substring(0, 1) +"'"; try{ Por Jonathan A. Jurado Sandoval Página 14

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); String fechanac=sdf.format(jdfechanac.getcalendar().gettime()).tostring(); if(fechanac!=null){ query+=" and p.fechanac='"+fechanac+"'"; catch(exception e){ query+=""; midatatable1.setconsulta(query); En el método constructor el siguiente código: public MantenientoAlumno(java.awt.Frame parent, boolean modal){ super(parent, modal); initcomponents(); midatatable1.setconsulta("select p.idpersona as IdAlumno, p.nombres as Nombres, p.apellidos as Apellidos,p.fechaNac as FechaNac, p.direccion, tdi.tipodocidentidad as TipoDoc, p.numerodocidentidad as NumeroDoc, p.sexo as Sexo " + "from persona p, alumno a, tipodocidentidad tdi where p.idpersona=a.idalumno and tdi.idtipodocidentidad=p.idtipodocidentidad"); En el botón eliminar de la interface se debe colocar el siguiente código: private void jbutton4actionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: //Consultar si desea eliminar el registro int val=joptionpane.showconfirmdialog(this, "Deseaa eliminar este registro"); if(val==0){ GestionarAlumnoControlador gc=new GestionarAlumnoControlador(); gc.eliminaralumno(midatatable1.getfila().get(0).tostring()); consultaalumno(); En el botón actualizar se debe colocar el siguiente código: private void jbutton3actionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: ActualizarAlumno act= new ActualizarAlumno(null, true); act.cargadatos(midatatable1.getfila().get(1).tostring(), midatatable1.getfila().get(2).tostring(), midatatable1.getfila().get(4).tostring(), midatatable1.getfila().get(3).tostring(),midatatable1.getfila().get(0).tostring()); act.setvisible(true); Cabe señalar que el método cargadatos debe estar creado en el JDialog Por Jonathan A. Jurado Sandoval Página 15

ActualizarAlumno.java o Formulario Actualizar Alumno Se debe crear el método de carga de datos: public void cargadatos(string nombres, String apellidos, String direccion, String fechanac){ jtextfield1.settext(nombres); jtextfield2.settext(apellidos); jtextfield3.settext(direccion); jtextfield4.settext(fechanac); En el botón Actualizar se debe colocar las siguientes líneas de código: private void jbutton1actionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: GestionarAlumnoControlador gac=new GestionarAlumnoControlador(); Persona per=new Persona(); per.setidpersona(idpersona); per.setnombres(jtextfield1.gettext()); per.setapellidos(jtextfield2.gettext()); per.setdireccion(jtextfield3.gettext()); per.setfechanac(jtextfield4.gettext()); Alumno alu=new Alumno(); alu.setalumno(per); if(gac.actualizaralumno(alu)){ MsgShow.informationMessage("Actualizacion Exitosa del Alumno "+per.getnombres()+" "+per.getapellidos(), "Actualizacion Exitosa"); MantenientoAlumno m=new MantenientoAlumno(null, false); m.consultaalumno(); Por Jonathan A. Jurado Sandoval Página 16

dispose(); else{ MsgShow.errorMessage("Error al actualizar Alumno "+per.getnombres()+" "+per.getapellidos()+"\ncontacte con el Administrador", "Error al Actualizar"); Por Jonathan A. Jurado Sandoval Página 17