Clases Java

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 44

JAVA - NetBeans

INSTITUCION EDUCATIVA SUPERIOR TECNOLGICO PBLICO

CARLOS SALAZAR ROMERO

TALLER DE PROGRAMACION CONCURRENTE

Docente: Ing. Oscar Ascn Valdivia

Nuevo Chimbote 2013

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

Qu es Cliente / Servidor?

Dos aplicaciones, una de las cuales solicita servicios (cliente) y la otra procesa las solicitudes
(servidor)
Es independiente del hardware donde se ejecuta, cliente y servidor pueden ejecutarse en la misma
PC
En algunos casos los papeles se intercambian

Cmo funciona una aplicacin Cliente / Servidor?

Sentencia
SQL
Solicita
servicio

Cliente

Enva
resultados
Aplicacin
VB, C#, PB, Java

Servidor
Procesa
solicitud
Ejecuta
Sentencia
SQL

SQLServer
MySql
Server

Caractersticas

Servicio: Relacin entre procesos


Recursos compartidos: Un servidor y varios clientes
Protocolos asimtricos: El cliente inicia el dilogo, los servidores esperan las solicitudes
(pasivos)
Transparencia de ubicacin: En la misma PC o en una PC a lo largo de una red
Mezcla e igualdad: Software independiente del hardware o de la plataforma (Sistema operativo)
Intercambios basados en mensajes: Cliente y Servidor interactan a travs de mensajes
Encapsulamiento de servicios: El servidor es un especialista. Pueden ser sustitudos sin afectar
al cliente (La interfaz de mensajes no debe cambiar)
Facilidad de escalabilidad: Horizontalmente o Verticalmente
Integridad: El cdigo de servidor y los datos de servidor se conservan centralmente. Los cliente
mantienen su individualidad e independencia

Clasificacin
Los autores hacen distintas clasificaciones de los sistemas Cliente / Servidor
Por los servicios que se atienden
Por la distribucin de las unidades funcionales en capas
Por la distribucin del volumen de las unidades funcionales

Por los servicios que se atienden

Servidores de archivos
Servidores de bases de datos
Servidores de transacciones
Servidores de Groupware
Servidores de objetos
Servidores Web

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

Por la distribucin de unidades funcionales en capas

1. Dos capas
Fsico

Lgico
Capa de usuario
Capa de servicios

Capa de
datos

2. Tres capas
Fsico

Lgico
Capa de usuario

Capa de servicios
del negocio

Capa de
datos

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

3. N - capas

Capa de usuario

Capa de servicios del


negocio

Capa de
datos

Capa de servicios de
Internet

Fsico

Lgico

Por la distribucin del volumen de las unidades funcionales


1.

Servidor amplio o Cliente delgado (Thin Web Client)


La mayor parte de la lgica del negocio se encuentra en el lado de los servidores
El cliente bsicamente contiene los servicios de usuario (interfaz y lgica para validacin de
ingreso de datos)
Los servidores soportan la mayor carga de procesamiento de los algoritmos principales requeridos
para el cumplimiento de las reglas del negocio

2.

Cliente grueso (Thick Web Client)


La mayor parte de la lgica del negocio se encuentra en el lado del cliente
El cliente contiene los principales algoritmos, adems de la validacin del ingreso de datos
Los servidores se dedican casi exclusivamente a procesar las solicitudes de datos de los clientes

Elementos de construccin

Tres elementos bsicos de construccin:

Cliente

Ing. Oscar Ascn Valdivia

Middleware
Servidor

JAVA - NetBeans

El elemento Cliente

El elemento Servidor

Corre en un SO con GUI o OOUI; Acceso a servicios distribuidos

Corre sobre un paquete comercial de software servidor, Depende del SO

El elemento Middleware

Corre tanto en el Cliente como en el Servidor


Tres categoras:
Pilas de transporte (TCP/IP, NetBIOS, etc.)
Sistemas Operativos de Redes (UNIX, Windows 2000, etc.)
Middleware de servicios especficos (ODBC, ORB, etc.)

Trabajo Prctico Java NetBeans


Implementar un sistema que cumpla con los siguientes requerimientos:

Menu de acceso a los elementos al sistema


Trabajo con jTable (Mantenimiento al control)
Traspasar informacin de un jFrame a otro jFrame
Implementar el Sistema de Ventas

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

CASO PRCTICO: Diseo de la Base de Datos


< < include > >

Re gistra r pa rticipa nte

Asiste nte

V e rifica r pa rticipa nte

< < include > >

Re gistra r tipo pa rticipa nte

V e rifica r tipo pa rticipa nte

<<inc lude >>

< < include > >


Re porte de M a tric ula dos x
Se m inario

< < include > >


Re gistra r m a tricula
< < include > >

Re porte s de pa rtic ipa nte s x tipo

V e rifica r m a tricula

< < include > >


Re gistra r se m ina rio

V e rifica r se m ina rio

<<inc lude >>


<<inc lude >>

Coordina dor

As igna r ponente s a l se m ina rio


<<inc lude >>

Re gis tra r pone nte s

Ve rific a r pone nte s

Re porte de pone nte s

Re porte de Se m ina rios


Re porte de pone nte s x s e m ina rio

Desarrollar:
1. Teniendo en cuenta el diagrama de casos de uso, disear la Base de datos y
migrarla al SQL Server 20xx

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

Caso Prctico: Diseo de la Base de Datos


La empresa Betos Producciones, le ha solicitado a Ud implementar un sistema
informtico para llevar el control de las ventas de entradas a los diferentes eventos que
estarn organizados por Betos Produccin, es necesario tener informacin de las
personas que adquieren las entradas a los diferentes eventos, cada evento tiene una
forma de pago diferente, es decir los costos son diferentes entre los eventos, esto
depende de los tipos de entrada y del evento. Debe de existir un programa de todos los
eventos por fecha indicando el lugar donde se realizara dicho evento y la hora, gracias a
este sistema Betos Producciones llevara un mejor control de las ventas de entradas y de
la programacin de los eventos.
Betos desea colocar muchas terminales de ventas de entradas para de esta forma poder
captar ms clientes.
Se les pide que emita reportes de las ventas realizadas por cada evento y del ingreso por
cada evento.
Desarrollar:
1. Modelo conceptual, lgico y fsico de la Base de datos
2. Migrarlo al SGBD Sql Server 20xx

Disear la siguiente Base de Datos en SQL Server (VENTAS.MDF)

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

Java Database Connectivity


JDBC es un conjunto de clases que permite a las aplicaciones escritas en Java conectarse a los sistemas
de manejo de bases de datos estndares.
Utilizando JDBC, las aplicaciones pueden recuperar y almacenar informacin en bases de datos
utilizando el Lenguaje de Consultas Estructurado (SQL)

Libreras para trabajar con acceso a datos:

import java.sql.*;
Clases de acceso a datos
java.sql.Connection: Sirve para conectarse a una base de datos de SQL Server, etc.
java.sql.Statement: Sirve para enviar comandos de ejecucin desde la aplicacin a la base de
datos.
java.sql. ResultSet: Sirve para almacenar los resultados devueltos desde la base de datos como
consecuencia de alguna consulta realizada.

Como conectarse desde java a SQLServer - ODBC


Paso 1: Panel de Control \ ODBC

Ing. Oscar Ascn Valdivia

JAVA - NetBeans

Paso 2: Seleccionar la opcin agregar y seleccionar el origen de datos SQL Server

Paso 3: Al seleccionar finalizar se mostrara la siguiente pantalla, en el cual llenaremos los


siguientes datos

Nombre del
ODBC.
odbcNombre BD

Nombre del
Servidor
. / (local)

Ing. Oscar Ascn Valdivia

10

JAVA - NetBeans

Paso 4: Al presionar Siguiente, se mostrara la siguiente pantalla.

Paso 5: Al presionar Siguiente, se mostrara la siguiente pantalla, donde deber de prender el


primer Check(Establecer la siguiente BD como predeterminada), y luego seleccionar nuestra BD.

OJO,
nuestra
BD

Paso 6: Al presionar Siguiente, se mostrara la siguiente pantalla.

Ing. Oscar Ascn Valdivia

11

JAVA - NetBeans

Paso 7: Al presionar Finalizar, se mostrara la siguiente pantalla.

Paso 8: Finalmente si quieren comprobar que todo est bien, presionar el botn Probar origen
de datos y deber de mostrarse la siguiente pantalla.

Ing. Oscar Ascn Valdivia

12

JAVA - NetBeans

Paso 9: Ufffffffffffffffffffffffffffffffffff, por fin terminamos.. ya cree mi ODBC, que


fcil estaba todo esto......., me gusta programar en Java.

ODBC creado.

Ing. Oscar Ascn Valdivia

13

JAVA - NetBeans

Manejo de excepciones en Java


Una excepcin es un evento que ocurre durante la ejecucin de un programa que rompe el flujo
normal de ejecucin. Cuando se habla de excepciones nos referimos a evento excepcional.
Muchas cosas pueden generar excepciones: Errores de hardware (falla de disco), de programa
(acceso fuera de rango en arreglo), apertura de archivo inexistente, etc.
Cuando se produce una excepcin dentro de un mtodo de Java, ste crea un objeto que
contiene informacin sobre la excepcin y lo pasa al cdigo llamador.
La rutina receptora de la excepcin es responsable de reaccionar a tal evento inesperado.
Cuando creamos un objeto para la excepcin y lo pasamos al cdigo llamador decimos que
lanzamos una excepcin (Throw an exception)
Si el metodo llamador no tiene un manejador de la excepcin se busca hacia atrs en la pila de
llamados anidados hasta encontrarlo.
Decimos que el manejador atrapa la excepcin (catch the exception)

Manejo de Excepciones
El manejo de excepciones se logra con el bloque try

try {
// cdigo

} catch (Exception e )
{
// cdigo que se hace cargo del error reportado en e

}
El bloque try puede manejar mltiples excepciones:

try {
// cdigo

} catch (StackError e )
{
// cdigo para manejar el error de stack

} catch (MathError me)


{
// cdigo para manejar el error matemtico indicado en me.

}
Captura de Excepciones (completo)
Ing. Oscar Ascn Valdivia

14

JAVA - NetBeans

El bloque try tiene la forma general:

try {
//sentencias

} catch (e-type1 e ) {
// sentencias

} catch (e-type2 e ) {
// sentencias

} ...
finally {
//sentencias

}
La clusula finally es ejecutada con posterioridad cualquiera sea la condicin de trmino del try
(sin o con error). Esta seccin permite dejar las cosas consistentes antes del trmino del bloque
try.
Ejemplo: Divisin de nmeros

private void btndividirActionPerformed(java.awt.event.ActionEvent evt) {


double n1,n2,d;
try{
n1=Double.parseDouble(txtn1.getText());
n2=Double.parseDouble(txtn2.getText());
d=n1/n2;
txtr.setText(String.valueOf(d));
}catch(Exception ex)
{
JOptionPane.showMessageDialog(rootPane, ex.getMessage());
}

Lgica correcta

Controlar error

Ing. Oscar Ascn Valdivia

15

JAVA - NetBeans

Conectar el ODBC con JAVA

package agenda;
//Paso 1: importar las librerias de acceso a datos
import java.sql.*;
import javax.swing.JOptionPane;
public class frmconectar extends javax.swing.JFrame {
//Paso 2: crear variables de acceso a datos
Connection con;
public frmconectar() {
initComponents();
}
//Paso 3: Crear un mtodo para la conexin de la BD
private void conectar()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:odbcventas","sa","");
JOptionPane.showMessageDialog(rootPane,"Yeeeeeee, logre conectar Java con mi BD",
"Felicidades",JOptionPane.INFORMATION_MESSAGE);
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane, ex.getMessage());
}
}
private void btnconectarActionPerformed(java.awt.event.ActionEvent evt) {
//Paso 4: llamar al metodo conectar
conectar();
}

Ing. Oscar Ascn Valdivia

16

JAVA - NetBeans

Como conectarse desde java a MySql

package conectarmysql;
import javax.swing.JOptionPane;
import java.sql.*;
public class frmconectar extends javax.swing.JFrame {
String bd="ventas";
String login="root";
String clave="";
String url="jdbc:mysql://localhost/"+bd;
Connection con;
private void btnconectarActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(url,login,clave);
JOptionPane.showMessageDialog(null,
"Conexion
JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null,
"Conexion
JOptionPane.INFORMATION_MESSAGE);
}
}
Ing. Oscar Ascn Valdivia

exitosa",

No

exitosa",

"Base

Datos",

"Base

17

Datos",

JAVA - NetBeans

LENGUAJE DE MANIPULACIN DE DATOS


1. DEFINICIN:
Se conoce con este nombre a un conjunto de sentencias que permite extraer o modificar los datos de
las tablas almacenadas en una base de datos.
Las cuatro sentencias principales del manejo de datos son:

SELECT

INSERT

UPDATE

DELETE

Resultados

BASE
DATOS

Requerimientos

Consultas Bsicas
La Utilidad de las bases de datos relacionales es permitir a los usuarios consultar o acceder a los datos
almacenados en ellas de una manera sencilla e intuitiva.

L
Applicacin
Cliente
Visual Basic
C#
PowerBuilder
Java

TransactSQL Server
ORACLE
MySql
Modelo Datos

Ing. Oscar Ascn Valdivia

18

JAVA - NetBeans

TIPO DE SENTENCIAS:
2. SELECT
2.1. Definicin
Obtiene las filas de la base de datos y permite realizar la seleccin de una o varias filas o
columnas de una o varias tablas. hay tres componentes bsicos en la instruccin SELECT:
SELECT, FROM y WHERE.
2.2. Sintaxis Bsica
SELECT * | lista_columnas
FROM tabla
[ WHERE condicin_filas ]
Donde:
lista_columnas es la lista de columnas a mostrar en el resultado de la consulta. Si se
especifica * se mostrarn todas las columnas de la tabla.
condicin_filas es una expresin lgica que indica que las filas a mostrar son aquellas
para las que el valor de la expresin es verdadero.
2.3. Clusulas
2.3.1. Select:
Especifica las columnas que va a devolver la consulta.
Argumentos:
DISTINCT: Especifica que slo pueden aparecer filas exclusivas en el conjunto de
resultados. Los valores NULL se consideran iguales a efectos de la palabra clave
DISTINCT.
2.3.2. From
Especifica las tablas de las que se van a obtener filas. La clusula FROM es necesaria
excepto cuando la lista de seleccin slo contiene constantes, variables y expresiones
aritmticas (no nombres de columna).
2.3.3. Where
Especifica una condicin de bsqueda para restringir las filas que se van a devolver.
Argumentos:
LIKE: Determina si una cadena de caracteres dada coincide o no con un
determinado modelo. Un modelo puede incluir caracteres normales y caracteres
comodn.
Carcter %: Cualquier cadena de cero o ms caracteres.
Ejemplo: WHERE apellidos LIKE '%ana%'
Busca todos los apellidos de los alumnos que contengan la palabra 'ana'
en cualquier parte de los apellidos.
BETWEEN: Especifica un intervalo inclusivo de valores. Utilice AND para
separar los valores inicial y final.

Ing. Oscar Ascn Valdivia

19

JAVA - NetBeans

Formato de una consulta en Java - NetBeans


1. Llamar al mtodo conectar(Mtodo creado para la conexin de la Base de Datos)
conectar();
2. Crear la(s)variables que se vayan a utilizar en las consultas
String valor=txtdireccion.getText();
3. Utilizar el controlador de errors try{}catch(Exception ex){}
try{
4. Crear la consulta SQL Select . From Where
String sql="select * from cliente where dir_cli='"+valor+"'";
5. Crear el objeto Statement
stmt=con.createStatement();
6. Ejecutar la consulta
rs=stmt.executeQuery(sql);
7. Mostrar la informacion mostrar la data en un objeto JTable
while(rs.next())
{
String[]datos=new String[4];
datos[0]=rs.getString(1);
datos[1]=rs.getString(2);
datos[2]=rs.getString(3);
datos[3]=rs.getString(4);
tdatos.addRow(datos);
}
8. Cerrar la conexion y el Statement
con.close();
stmt.close();
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.getMessage());
}

Ing. Oscar Ascn Valdivia

20

JAVA - NetBeans

Ejemplos de consultas SQL con Java NetBeans


1. Mostrar todos los clientes cuya direccin sea
igual a un valor ingresado por el usuario.

package agenda;
import javax.swing.table.*;
import java.sql.*;
import javax.swing.JOptionPane;

public class frmconsulta extends javax.swing.JFrame {


public Connection con;
public ______________________ stmt;
public ResultSet rs;
DefaultTableModel tdatos=new DefaultTableModel();
public frmconsulta() {
initComponents();
String titulos[]={"Codigo","Nombres","Apellidos","Titulos"};
tdatos.setColumnIdentifiers(titulos);
_____________________________________
}
private void conectar()
{
try
{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("_____________________________","sa","");
JOptionPane.showMessageDialog(rootPane,"Conexion
exitosa",
"Base
JOptionPane.INFORMATION_MESSAGE);
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.___________________________());
}
}
private void btnmostrarActionPerformed(java.awt.event.ActionEvent evt) {
conectar();
String valor=txtdireccion.getText();
try{
String sql="select * from cliente where dir_cli='"+valor+"'";
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
limpiartabla()
while(rs.next()){
String[]datos=new String[4];
datos[0]=rs.getString(1);
datos[1]=rs.getString(2);
datos[2]=rs.getString(3);
datos[3]=rs.getString(4);
tdatos.addRow(datos);
}
Ing. Oscar Ascn Valdivia

Datos",

21

JAVA - NetBeans

con.close();
stmt.close();
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.getMessage());
}

}
private void limpiartabla()
{
int x=tdatos.getRowCount();
for (int i = 0; i < x; i++) {
_________________________________________
}
}
}

2. Mostrar todos los datos de la tabla producto, donde el precio de venta este entre dos valores

private void btnmostrarActionPerformed(java.awt.event.ActionEvent evt) {


conectar();
String p1=txtp1.getText();
String p2=txtp2.getText();
try{
String sql="select * from producto where pre_pro between '"+ p1 +"' AND '"+ p2 +"'";
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
_____________________________________;
datos[0]=rs.getString(1);
datos[1]=rs.getString(2);
datos[2]=rs.getString(3);
datos[3]=___________________;
___________________________________;
}
con.close();
stmt.close();
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.getMessage());
}
}
Ing. Oscar Ascn Valdivia

22

JAVA - NetBeans

3. Mostrar todos los datos de la tabla cliente donde su apellido paterno empiece con algn carcter
ingresado por el usuario

private void btnmostrarActionPerformed(java.awt.event.ActionEvent evt) {


int t;
conectar();
String valor=txtapellidos.getText();
try{
String sql="select * from cliente

where ape_cli like '"+valor+"%'";

stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
_______________________
_______________________
_______________________
_______________________
_______________________
_______________________
t=tbldatos.getRowCount();
txttotal.setText(String.valueOf(t));
}
con.close();
stmt.close();
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.getMessage());
}

Trabajo Prctico
Desarrollar las siguientes consultas SQL en el Lenguaje de programacin JAVA, utilizando la Base de
Datos Ventas.
1. Mostrar todos los datos de la tabla venta donde la fecha de venta se encuentre entre un rango de
valores ingresados por el usuario
2. Mostrar todos los datos de la tabla producto donde la descripcin empiece con algn carcter
ingresado por el usuario.
3. Mostrar todos los datos de la tabla producto donde el precio de venta este entre dos valores
4. Mostrar Nombre, apellidos y direccin del cliente donde la direccin sea igual a una direccin
ingresada
5. Mostrar Nombre y Apellidos de la tabla Vendedor donde el apellido paterno empiece con algn
carcter ingresado
6. Seleccionar todos los campos de la tabla cliente donde su apellidos empiecen con algn carcter
ingresado por el usuario y su direccin sea igual a una direccin seleccionada por el usuario.
Mostrar el total de registros.

Ing. Oscar Ascn Valdivia

23

JAVA - NetBeans

7. Seleccionar todos los campos de la tabla producto donde la descripcin empiecen con algn
carcter ingresado por el usuario y su precio de venta sea mayor a un valor ingresado por el usuario.
Mostrar el total de registros.
8. Disear la siguiente venta y programar las consultas.

Nota: Las consultas deben de estar inmersas dentro de una opcin de Menu (Consultas), las cuales se
acceder con una pantalla de seguridad que se encuentre validado para 3 intentos. (debe de validar a
los usuarios con una tabla usuario de la base de datos).

Ing. Oscar Ascn Valdivia

24

JAVA - NetBeans

CONSULTAS A MULTIPLES TABLAS


En la sesin anterior las consultas solo hacen referencia a los datos almacenados en una sola tabla. En
el caso de que las consultas requieran datos de ms de una tabla debemos utilizar las uniones.
UNIENDO MULTIPLES TABLAS
Una unin permite combinar columnas de diferentes tablas y devolver una tabla de de resultados. Por
ejemplo se tiene las tablas Clientes y Facturas. Una consulta valida seria Mustrame el nombre de los
clientes con sus respectivas facturas, la informacin pedida no se encuentra en ninguna de las dos
tablas, por lo tanto es necesario utilizar las uniones para unir las tablas en las cuales esta la
informacin requerida.
Seleccionar Columnas de Multiples Tablas
JOIN.- especifica las tablas que sern unidas y como se unirn.
ON.- especifica la condicin de unidad.
Consultar dos o mas tablas para producir un resultado
Use claves primarias y forneas como condiciones de unin.
Use columnas comunes para especificar unin entre tablas
La tabla clientes tiene una columna cod_cli que es la clave primaria e identifica a un cliente. La tabla
facturas tiene una columna cod_cli que es una clave fornea, e identifica al cliente que se le emiti la
factura.
INNER JOINS(Combinaciones Internas)
Estas combinaciones usan un operador de comparacin para hacer coincidir las filas de dos tablas
segn los valores de las columnas comunes de cada tabla.
Ejemplo:1
Muestra el nombre de los clientes y sus facturas respectivas ordenadas por el nombre del cliente.
Sin Alias
select cliente.nom_cli,factura.num_fac,factura.fec_fac from cliente inner join factura
on cliente.cod_cli=factura.cod_cli order by cliente.nom_cli;
Con alias
select c.cod_cli,nom_cli,num_fac,fec_fac from cliente as c inner join factura as f
on c.cod_cli=f. cod_cli order by c.nom_cli;

Ing. Oscar Ascn Valdivia

25

JAVA - NetBeans

Ejercicios desarrollados de consultas SQL de mltiples tablas


1.
Mostrar cdigo, nombre y apellidos del cliente y la fecha de venta, segn un apellidos
seleccionado
package agenda;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
import javax.swing.JOptionPane;
public
class
frmconcliente
javax.swing.JFrame {

extends

public _______________ con;


public _______________ stmt;
public _______________ rs;
DefaultTableModel tdatos=new DefaultTableModel();
public frmconcliente() {
initComponents();
____________________________________________________________
tdatos.setColumnIdentifiers(titulos);
________________________________
direccion();
}
private void conectar()
{
try
{
______________________________________________________________
con=DriverManager.getConnection("_______________________________________");
JOptionPane.showMessageDialog(rootPane,"Conexion
exitosa","Base
JOptionPane.INFORMATION_MESSAGE);
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.getMessage());
}
}

Ing. Oscar Ascn Valdivia

26

Datos",

JAVA - NetBeans

private void btnmostrarActionPerformed(java.awt.event.ActionEvent evt) {


int t;
conectar();
String valor=(String)cbodireccion.getSelectedItem();
try{
String sql="select c.nom_cli,c.ape_cli,c.dir_cli,v.fec_ven from

cliente as c
inner join venta as v on(c.cod_cli=v.cod_cli)where c.dir_cli = '"+valor+"'";
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(____________________________){
_________________________________
datos[0]=rs.getString(1);
datos[1]=rs.getString(2);
datos[2]=rs.getString(3);
datos[3]=rs.getString(4);
_______________________________
t=tbldatos.getRowCount();
txttotal.setText(String.valueOf(t));
}
con.close();
stmt.close();
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.getMessage());
}
}
private void direccion()
{
conectar();
try{
String sql="select distinct dir_cli from cliente";
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
__________(rs.next()){
cbodireccion.addItem(rs.getString(1));
}
con.__________________();
stmt.__________________();
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane,ex.getMessage());
}
}
Ing. Oscar Ascn Valdivia

27

JAVA - NetBeans

2. Mostrar todos los campos de la tabla detventa donde el cdigo del producto sea igual a un valor
seleccionado por el usuario, mostrar la cantidad de registros.

3. Consulta que muestre que clientes compraron entre un rango de fechas

4.

Mostrar al vendedor que atendieron a los clientes y la fecha de venta segn el apellido del vendedor
(bsqueda interactiva)

5. Mostrar los productos que se llev el cliente segn el nmero de factura seleccionado

Ing. Oscar Ascn Valdivia

28

JAVA - NetBeans

Trabajo Consultas SQL - JAVA


Desarrollar un Sistema que contenga las siguientes pantallas y consultas
a. Implementar la pantalla de seguridad, deber de estar validada con una tabla usuario, y adems
deber de soportar solo 3 intentos. (4 ptos)

b. Disear la siguiente Base de Datos (Hospital) (1 ptos)

c. Disear un Menu que contenga 3 opciones, segn Ud. Crea conveniente.


d. Una opcin del men deber de llamar al siguiente formulario, donde:
Deber de permitir buscar a los pacientes de manera iterativa segn la opcin
seleccionada. (2 ptos)
Deber de mostrar los servicio que presta el hospital, estos servicios son de la tabla
servicio (2 ptos)
Ing. Oscar Ascn Valdivia

29

JAVA - NetBeans

El botn Calcular: Ingresado el costo, deber de seleccionar un tipo de paciente


(Asegurado tiene un descuento del 10% y los no asegurados tienen un incremento del 5%.
(2 ptos)
El botn agregar: agregara los elementos a la listas, adems deber de ir incrementndose
el monto total. (2 ptos)
El botn eliminar: al seleccionar a un paciente se eliminara y adems disminuir el monto
total. (3 ptos)

e. Mostrar a todos los pacientes que se atendieron (nombre, apellido, direccin, fecha cita) segn un
servicio seleccionado, adems deber demostrar la cantidad de pacientes. (2 ptos)
f. Mostrar a todos los pacientes que se atendieron segn la direccin del paciente, adems deber
demostrar la cantidad de pacientes (2 ptos)

Ing. Oscar Ascn Valdivia

30

JAVA - NetBeans

ACCESO A DATOS
SENTENCIA DE INSERCIN: INSERT
Definicin
Agrega o inserta una nueva fila a una tabla.
Sintaxis Bsica
INSERT INTO tabla (lista_columnas)
VALUES (valor1, valor2,valorn)
Donde:
lista_columnas se trata de una lista de una o ms columnas en las que se insertarn los
datos; lista_columnas debe estar entre parntesis y delimitada con comas.
valor1, valor2,valorn son los valores que se van a insertar en la tabla.
Clusulas
Into: Es una palabra clave opcional que se puede utilizar entre INSERT y la tabla de destino.
Values: Presenta la lista de valores de datos que se van a insertar. Debe haber un valor de datos para
cada columna definida en lista_columnas (si se especific) o en la tabla. La lista de valores debe estar
entre parntesis.
Si los valores de la lista VALUES no estn en el mismo orden que las columnas de la tabla o no tienen
un valor para cada columna de la tabla, debe utilizarse lista_columnas para especificar explcitamente
la columna que almacena cada valor de entrada.
SENTENCIA DE ACTUALIZACIN: UPDATE
Definicin
Cambia o modifica los datos de una o varias filas de una determinada tabla.
Sintaxis Bsica
UPDATE tabla
SET
Columna1 = valor1,
Columna2 = valor2,
..
Columnan = valorn
[ WHERE condicin_filas ]
Donde:
lista_columnas se trata de una lista de una o ms columnas las cuales sern modificadas
o actualizadas por la lista de valores las cuales deben de estar separadas por coma.
tabla es el nombre de la tabla que va a eliminar las filas.
valor1, valor2,valorn son los valores que se van a ser asignadas a las columnas.
condicin_filas es una expresin lgica que indica que las filas que se van a modificar
son aquellas para las que el valor de la expresin es verdadero.
Clusulas
Set: Especifica la lista de nombres de columnas o variables que se van a actualizar.
Where: Especifica las condiciones que limitan a las filas que se actualizan.
Ing. Oscar Ascn Valdivia

31

JAVA - NetBeans

SENTENCIA DE ELIMINACIN: DELETE


Definicin
Quita o elimina las filas de una tabla.
Sintaxis Bsica
DELETE FROM tabla
[ WHERE condicin_filas ]
Donde:
tabla es el nombre de la tabla que va a modificar los datos.
condicin_filas es una expresin lgica que indica que las filas se van a eliminar son
aquellas para las que el valor de la expresin es verdadero.
Clusulas
From: Se trata de una palabra clave opcional que se puede utilizar entre la palabra clave DELETE.
Where: Especifica las condiciones que limitan a las filas que se eliminaran.
Ejemplos

Insertar un registro a la tabla cliente


insert into Cliente values('1234','Oscar','Ascon','Lima')
select * from cliente
Modificar un registro de la table cliente
update Cliente set nom_cli='Maria Ana',ape_cli='Ascon'
where cod_cli='9'
select * from cliente
Eliminar un registro de la table cliente
delete from Cliente where cod_cli='1234'
select * from cliente

Nota: Toda actualizacin a la Base de datos necesita de una instruccin Select para verificar el
resultado

Ing. Oscar Ascn Valdivia

32

JAVA - NetBeans

ACTUALIZACION DE REGISTROS JAVA NETBEANS - SQLSERVER


1. Actualizar los registros de la tabla cliente

package Ventas;
//Paso 1: Importar las libreras de acceso a datos
import _______________________;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class frmclientito extends javax.swing.JFrame {
//Paso 2: Crear variables de acceso a datos
Connection con;
ResultSet rs;
Statement stmt;
//Paso 4: Crear una variable por cada campo de la tabla
String co,no,ap,di;
DefaultTableModel tdatos=new DefaultTableModel();
public frmclientito() {
initComponents();
String titulos[]={"Codigo","Nombres","Apellidos","Direccion"};
tdatos.setColumnIdentifiers(titulos);
tbldatos.setModel(tdatos);
mostrar();
}

Ing. Oscar Ascn Valdivia

33

JAVA - NetBeans

//Paso 3: Crear la conexin a la Base de datos, utilizando ODBC


//Para esto vamos a crear un mtodo para conectar la BD
private void conectar(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("___________________________");
}
catch(Exception ex){
JOptionPane.showMessageDialog(rootPane, ex.getMessage());
}
}
//Paso 5: Crear un mtodo que nos permita darle valor a las variables de la tabla
private void llenar()
{
co=txtco.getText();
no=______________________;
ap=______________________;
di=txtdi.getText();
}
//Paso 6: Para ver el resultado de la actualziacion, necesitamos una instruccion Select
private void mostrar(){
String sql;
try{
conectar();
sql="select * from cliente";
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(_____________________){
String datos[]=new String[4];
datos[0]=rs.getString(1);
datos[1]=rs.getString(2);
datos[2]=rs.getString(3);
datos[3]=rs.getString(4);
______________________________;
}
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane, ex.getMessage());
}
}
//Paso 7: Crear un mtodo para limpiar la tabla

Ing. Oscar Ascn Valdivia

34

JAVA - NetBeans

private void limpiartabla()


{
int x=tbldatos.getRowCount();
__________________________________________{
________________________________ ;
}
}
private void btngrabarActionPerformed(java.awt.event.ActionEvent evt) {
int rpta;
String sql;
rpta=JOptionPane.showConfirmDialog(rootPane,"Deseas Grabar", "Grabar",
JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
conectar();
try{
llenar();
sql="insert into cliente values('"+co+"','"+no+"','"+ap+"','"+di+"')";
stmt=con.createStatement();
stmt.execute(sql);
con.close();
stmt.close();
limpiartabla();
mostrar();
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane, ex.getMessage());
}
}
Trabajo.
1. Disear un sistema que contenga una ventana de validacin del usuario, una ventana de men,

luego implementar un formulario de mantenimiento por cada tabla de la base de datos ventas.

Ing. Oscar Ascn Valdivia

35

JAVA - NetBeans

Caso prctico:
1. Implementar la siguiente interfaz tanto para el cliente, Vendedor, Venta, Producto; utilizar
diferentes prototipos de pantallas para su implementacin, deber permitir realizar mantenimiento y
bsquedas a la Base de Datos.

2. Implementar la siguiente interfaz para el cliente, que permita realizar mantenimiento y


bsquedas a la Base de Datos

Ing. Oscar Ascn Valdivia

36

JAVA - NetBeans

PROGRAMACION ORIENTADA A OBJETOS


Clases
Conceptos de clase y objeto
Java es un lenguaje orientado a objetos puro, lo que significa que todo con lo que vamos a trabajar en
este lenguaje son objetos. Un objeto es un agregado de datos y de mtodos que permiten manipular
dichos datos, y un programa en Java no es ms que un conjunto de objetos que interaccionan unos con
otros a travs de sus mtodos.
Una clase es la definicin de las caractersticas concretas de un determinado tipo de objetos. Es decir,
de cules son los datos y los mtodos de los que van a disponer todos los objetos de ese tipo. Por esta
razn, se suele decir que el tipo de dato de un objeto es la clase que define las caractersticas del
mismo.

Sintaxis de definicin de clases


La sintaxis bsica para definir una clase es la que a continuacin se muestra:
class <nombreClase>
{
<miembros>
}

De este modo se definira una clase de nombre <nombreClase> cuyos miembros son los definidos en
<miembros> Los miembros de una clase son los datos y mtodos de los que van a disponer todos los
objetos de la misma. Un ejemplo de cmo declarar una clase de nombre A que no tenga ningn
miembro es la siguiente:
class A
{}

Campos: Un campo es un dato comn a todos los objetos de una determinada clase. Para
definir cules son los campos de los que una clase dispone se usa la siguiente sintaxis dentro de
la zona sealada como <miembros> en la definicin de la misma:
<tipoCampo> <nombreCampo>;

class Persona
{
string Nombre;
int Edad;
string DNI;
}

// Campo de cada objeto Persona que almacena su nombre


// Campo de cada objeto Persona que almacena su edad
// Campo de cada objeto Persona que almacena su DNI

Para acceder a un campo de un determinado objeto se usa la sintaxis:


<objeto>.<campo>

Ing. Oscar Ascn Valdivia

37

JAVA - NetBeans

Por ejemplo, para acceder al campo Edad de un objeto Persona llamado p y


valor por 20 se hara:

cambiar

su

p.Edad = 20;

Mtodos: Un mtodo es un conjunto de instrucciones a las que se les asocia un nombre de


modo que si se desea ejecutarlas basta referenciarlas a travs de dicho nombre en vez de tener
que escribirlas. Dentro de estas instrucciones es posible acceder con total libertad a la
informacin almacenada en los campos pertenecientes a la clase dentro de la que el mtodo se
ha definido, por lo que como al principio del tema se indic, los mtodos permiten manipular
los datos almacenados en los objetos.
La sintaxis que se usa en Java para definir los mtodos es la siguiente:
<tipoDevuelto> <nombreMtodo> (<parametros>)
{
<instrucciones>
}

Todo mtodo puede devolver un objeto como resultado de la ejecucin de las instrucciones que
lo forman, y el tipo de dato al que pertenece este objeto es lo que se indica en <tipoDevuelto>. Si
no devuelve nada se indica void, y si devuelve algo es obligatorio finalizar la ejecucin de sus
instrucciones con alguna instruccin return <objeto>; que indique qu objeto ha de devolverse.

Un ejemplo de cmo declarar un mtodo de nombre Cumpleaos es la siguiente modificacin


de la definicin de la clase Persona usada antes como ejemplo:
class Persona
{
string Nombre;
int Edad;
string DNI;

// Campo de cada objeto Persona que almacena su nombre


// Campo de cada objeto Persona que almacena su edad
// Campo de cada objeto Persona que almacena su DNI

void Cumpleaos() // Incrementa en uno de la edad del objeto Persona


{
Edad++;
}
}

La sintaxis usada para llamar a los mtodos de un objeto es la misma que la usada para llamar a
sus campos, slo que ahora tras el nombre del mtodo al que
se desea llamar hay que
indicar entre parntesis cules son los valores que se desea dar a los parmetros del mtodo al
hacer la llamada. O sea, se escribe:
<objeto>.<mtodo>(<parmetros>)

Como es lgico, si el mtodo no tomase parmetros se dejaran vacos los


parmetros en
la llamada al mismo. Por ejemplo, para llamar al mtodo Cumpleaos() de un objeto Persona llamado
p se hara:
p.Cumpleaos(); // El mtodo no toma parmetros, luego no le pasamos ninguno

Ing. Oscar Ascn Valdivia

38

JAVA - NetBeans

Es importante sealar que en una misma clase pueden definirse varios mtodos con el mismo
nombre siempre y cuando tomen diferente nmero o tipo de parmetros. A esto se le conoce
como sobrecargar de mtodos, y es posible ya que cuando se les llame el compilador sabr a
cual llamar a partir de <parmetros> pasados en la llamada.

Creacin de objetos
Operador new
La utilidad del operador new, que precisamente es crear objetos y cuya sintaxis es:
new <nombreTipo>(<parametros>)

Este operador crea un nuevo objeto del tipo cuyo nombre se le indica y llama durante su proceso de
creacin al constructor del mismo apropiado segn los valores que se le pasen en <parametros>,
devolviendo una referencia al objeto recin creado. Hay que resaltar el hecho de que new no devuelve
el propio objeto creado, sino una referencia a la direccin de memoria dinmica donde en realidad se
ha creado.

El constructor recibe ese nombre debido a que su cdigo suele usarse precisamente para construir el
objeto, para inicializar sus miembros. Por ejemplo, a nuestra clase de ejemplo Persona le podramos
aadir un constructor dejndola as:
class Persona
{
string Nombre; // Campo de cada objeto Persona que almacena su nombre
int Edad;
// Campo de cada objeto Persona que almacena su edad
string DNI;
// Campo de cada objeto Persona que almacena su DNI
void Cumpleaos() // Incrementa en uno la edad del objeto Persona
{
Edad++;
}
Persona (string nombre, int edad, string dni) // Constructor
{
Nombre = nombre;
Edad = edad;
DNI= dni;
}
}

Como se ve en el cdigo, el constructor toma como parmetros los valores con los que deseemos
inicializar el objeto a crear. Gracias a l, podemos crear un objeto Persona de nombre Jos, de 22 aos
de edad y DNI 32734949 as:
new Persona(Jos, 22, 32734949)

En realidad un objeto puede tener mltiples constructores, aunque para diferenciar a unos de otros es
obligatorio que se diferencien en el nmero u orden de los parmetros que aceptan, ya que el nombre
de todos ellos ha de coincidir con el nombre de la clase de la que son miembros. De ese modo, cuando

Ing. Oscar Ascn Valdivia

39

JAVA - NetBeans

creemos el objeto el compilador podr inteligentemente determinar cul de los constructores ha de


ejecutarse en funcin de los valores que le pasemos al new.
Una vez creado un objeto lo ms normal es almacenar la direccin devuelta por new en una variable
del tipo apropiado para el objeto creado. El siguiente ejemplo -que como es lgico ir dentro de la
definicin de algn mtodo- muestra cmo crear una variable de tipo Persona llamada p y cmo
almacenar en ella la direccin del objeto que devolvera la anterior aplicacin del operador new:
Persona p;
// Creamos variable p
p = new Persona(Jose, 22, 32734949); // Almacenamos en p el objeto creado con new

Constructor por defecto


No es obligatorio definir un constructor para cada clase, y en caso de que no definamos ninguno el
compilador crear uno por nosotros sin parmetros ni instrucciones. Es decir, como si se hubiese
definido de esta forma:
<nombreTipo>()
{
}

Gracias a este constructor introducido automticamente por el compilador, si Coche es una clase en
cuya definicin no se ha incluido ningn constructor, siempre ser posible crear uno nuevo usando el
operador new as:
Coche c = new Coche(); // Crea coche c llamando al constructor por defecto de Coche

Hay que tener en cuenta una cosa: el constructor por defecto es slo incluido por el compilador si no
hemos definido ningn otro constructor. Por tanto, si tenemos una clase en la que hayamos definido
algn constructor con parmetros pero ninguno sin parmetros no ser vlido crear objetos de la
misma llamando al constructor sin parmetros, pues el compilador no lo habr definido
automticamente. Por ejemplo, con la ltima versin de la clase de ejemplo Persona es invlido hacer:
Persona p = new Persona(); // ERROR: El nico constructor de persona toma 3 parmetros

Herencia
Concepto de herencia
El mecanismo de herencia es uno de los pilares fundamentales en los que se basa la programacin
orientada a objetos. Es un mecanismo que permite definir nuevas clases a partir de otras ya definidas
de modo que si en la definicin de una clase indicamos que sta deriva de otra, entonces la primera -a
la que se le suele llamar clase hija- ser tratada por el compilador automticamente como si su
definicin incluyese la definicin de la segunda a la que se le suele llamar clase padre o clase base.
Las clases que derivan de otras se definen usando la siguiente sintaxis:

class <nombreHija>extends <nombrePadre>


{
<miembrosHija>
}
Ing. Oscar Ascn Valdivia

40

JAVA - NetBeans

A los miembros definidos en <miembrosHijas> se le aadirn los que hubisemos definido en la clase
padre. Por ejemplo, a partir de la clase Persona puede crearse una clase Trabajador as:
class Trabajador extends Persona
{
public int Sueldo;
public Trabajador(string nombre, int edad, string nif, int sueldo)
: base(nombre, edad, nif)
{
Sueldo = sueldo;
}
}

Los objetos de esta clase Trabajador contarn con los mismos miembros que los objetos Persona y
adems incorporarn un nuevo campo llamado Sueldo que almacenar el dinero que cada trabajador
gane.
Un ejemplo que pone de manifiesto cmo funciona la herencia es el siguiente:
class Persona
{
public string Nombre; // Campo de cada objeto Persona que almacena su nombre
public int Edad;
// Campo de cada objeto Persona que almacena su edad
public string DNI;
// Campo de cada objeto Persona que almacena su DNI
void Cumpleaos() // Incrementa en uno de edad del objeto Persona
{
Edad++;
}
public Persona (string nombre, int edad, string nif) // Constructor de Persona
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
}
class Trabajador extends Persona
{
public int Sueldo; // Campo de cada objeto Trabajador que almacena cunto gana
Trabajador(string nombre, int edad, string dni, int sueldo)
{
// Inicializamos cada Trabajador en base al constructor de Persona
Sueldo = sueldo;
}

Ing. Oscar Ascn Valdivia

41

JAVA - NetBeans

Programacin Orientada a Objetos


Diagrama de clases
Cliente

package Clases;
import javax.swing.JOptionPane;
public class Cliente {
private String dni;
private String nombre;
private String apellido;
private String direccion;
private double sueldo;

dni : String
nombre : String
apellido : String
direccion : String
sueldo : double
Agregar()
Calcular()

public Cliente() {
}
public Cliente(String dni, String nombre, String apellido, String direccion, double sueldo) {
this.dni = dni;
this.nombre = nombre;
this.apellido = apellido;
this.direccion = direccion;
this.sueldo = sueldo;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getDni() {
return dni;
}
public void setDni(String dni) {
this.dni = dni;
}

Ing. Oscar Ascn Valdivia

42

JAVA - NetBeans

public String getNombre() {


return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public double getSueldo() {
return sueldo;
}
public void setSueldo(double sueldo) {
this.sueldo = sueldo;
}
///////////////Metodos////////////////
public void agregar()
{
JOptionPane.showMessageDialog(null, "Cliente: "+nombre+" "+apellido,"Agregar",
JOptionPane.INFORMATION_MESSAGE);
}
public double descuento()
{
double x;
x=sueldo*0.10;
return x;
}
}

Formulario Cliente

package Formularios;
import Clases.Cliente;
public class frmcliente extends javax.swing.JFrame {
private Cliente oc=new Cliente();

Ing. Oscar Ascn Valdivia

43

JAVA - NetBeans

private void llenar()


{
oc.setDni(txtdni.getText());
oc.setNombre(txtnom.getText());
oc.setApellido(txtape.getText());
oc.setDireccion(txtdir.getText());
oc.setSueldo(Double.parseDouble(txtsue.getText()));
}
private void btnagregarActionPerformed(java.awt.event.ActionEvent evt) {
llenar();
oc.agregar();
}
private void btndescuentoActionPerformed(java.awt.event.ActionEvent evt) {
llenar();
txtdes.setText(String.valueOf(oc.descuento()));
}
}

Practica:
1.

Implementar el siguiente diagrama de clases (Usar clases de acceso a datos)


Secretaria

Alumno
codigo : String
nombre : String
1
apellido : String
email : String

Matricula
1..*

Codigo
1..*
Fecha
Observacion

Asignardatos()
Agregar()

1..*

dni
nombre
apellido
sueldo
afiliacion
Asignardatos()
Calcularsueldo()

1
Curso
codigo
descripcion
costo
Asignardatos()
Agregar()

2.

Implementar el diagrama de clases de su proyecto

Ing. Oscar Ascn Valdivia

44

También podría gustarte