Académique Documents
Professionnel Documents
Culture Documents
Tabla de Contenido.
1
2
3
OBJETIVOS..................................................................................................4
CONTENIDO.................................................................................................5
INTRODUCCION AL LENGUAJE DE PROGRAMACION JAVA..................6
3.1
Historia de java.......................................................................................6
3.2
Qu es java?........................................................................................7
3.3
Cmo trabaja la plataforma Java?.......................................................7
3.4
Caractersticas del Lenguaje Java.........................................................8
3.4.1
Simple.............................................................................................8
3.4.2
Portable...........................................................................................8
3.4.3
Interpretado.....................................................................................9
3.4.4
Orientado a objetos.........................................................................9
3.4.5
Seguro...........................................................................................10
3.4.6
Dinmico.......................................................................................10
3.4.7
Multihilo.........................................................................................10
3.5
Java VS Otros lenguajes......................................................................11
4 CONOCIENDO JAVA..................................................................................12
4.1
Qu es JDK?......................................................................................12
4.2
Tipos de aplicaciones en Java.............................................................12
4.2.1
Java Applets..................................................................................12
4.2.2
Aplicaciones Standalone...............................................................12
4.2.3
Paquetes (package)....................................................................13
4.2.4
Java Servlets.................................................................................13
4.2.5
Jsp (Java Server Page)................................................................13
4.2.6
Java Beans...................................................................................13
4.3
La API de Java.....................................................................................14
4.3.1
java.lang........................................................................................14
4.3.2
java.lang.io....................................................................................14
4.3.3
java.util..........................................................................................14
4.3.4
java.net..........................................................................................14
4.3.5
java.awt.........................................................................................15
4.3.6
java.applet.....................................................................................15
5 LENGUAJE DE PROGRAMACION JAVA PARTE I....................................16
5.1
Comentarios en Java...........................................................................16
5.1.1
Comentario de una lnea...............................................................16
5.1.2
Comentario de mltiples lneas...................................................16
5.2
Palabras reservadas del lenguaje java................................................16
5.3
Operadores en Java.............................................................................17
5.4
Variables y tipos de datos....................................................................17
5.5
Nombres validos para las variables.....................................................18
5.6
Declaracin de Variables.....................................................................18
5.7
Control de flujos...................................................................................19
5.7.1
Toma de decisiones......................................................................19
5.7.2
Buclas...........................................................................................22
5.8
Arreglos................................................................................................25
5.8.1
Declaracin de matrices...............................................................26
5.9
Cadenas de Caracteres.......................................................................26
5.9.1
Sintaxis de declaracin de cadenas.............................................26
5.9.2
Operacin de cadenas..................................................................27
5.10 Estructura de los archivos JavaTM......................................................30
5.10.1 Paquetes.......................................................................................30
5.10.2 Importar paquetes.........................................................................31
5.11 Modificadores de acceso.....................................................................32
5.11.1 Modificador public.........................................................................32
5.11.2 Modificador private........................................................................32
5.11.3 Modificador default........................................................................32
5.11.4 Modificador protected...................................................................33
5.11.5 Visibilidad de los modificadores....................................................34
5.11.6 El modificador static......................................................................34
6 LENGUAJE DE PROGRAMACION JAVA PARTE II...................................35
6.1
Herencia...............................................................................................35
6.2
Polimorfismo.........................................................................................37
6.3
Interfaces..............................................................................................41
7 ACCESO A BASE DE DATOS CON JAVA: JDBC......................................44
7.1
Qu es JDBC?...................................................................................44
7.2
Tipos de controladores JDBC(Java Database Conectivity).................44
7.2.1
Nivel 1...........................................................................................45
7.2.2
Nivel 2...........................................................................................46
7.2.3
Nivel 3...........................................................................................47
7.2.4
Nivel 4...........................................................................................48
7.3
Estructura general de una aplicacin JDBC........................................49
7.4
El API java.sql......................................................................................49
7.4.1
Clases e Interfaces del paquete java.sql......................................49
7.5
Tipos de datos JDBC a tipos de datos Java........................................52
7.6
Un Programa en Java para el acceso a una Base de Datos...............53
1 OBJETIVOS
2 CONTENIDO
3 INTRODUCCION AL LENGUAJE DE
PROGRAMACION JAVA.
3.2 Qu es java?
Java es una nueva forma de computacin basada en el poder de las redes y en
la idea de que el mismo software funcione en diferentes tipos de maquinas sin
importar su arquitectura o sistema operativo.
Simple
Portable
Interpretado
Orientado a Objetos
Seguro
Dinmico
Multihilo
3.4.1 Simple
Desde el nacimiento del lenguaje esa fue su meta. Este lenguaje oculta toda la
dificultad que trae el programar en lenguajes orientados a objetos como C++ y
Perl y oculta la complejidad del uso de punteros.
3.4.2 Portable
Java es portable debido a su maquina virtual la cual interpreta el cdigo Java y
lo ejecuta sin importar el sistema operativo.
3.4.3 Interpretado.
La JVM interpreta el bytecode generado por el compilador, a diferencia de
leguajes como C o C++ en los cuales las instrucciones son procesadas
directamente por el sistema operativo, haciendo que los programas no sean
portables.
El que java sea interpretado hace que su velocidad sea 7 veces mas baja que
leguajes como C++, sin embargo la potencialidad de Java se debe a que es un
lenguaje interpretado.
3.4.5 Seguro
En la programacin de componentes distribuidos la seguridad es algo muy
importante, java implementa cuatro aspectos de seguridad
Polticas de Seguridad.
Privacidad.
Autenticacin.
Seguridad.
3.4.6 Dinmico
Java remueve el manejo de memoria dinmica del programador, el manejo de
objetos se hace por medio de referencias, el programador no tiene la
dispendiosa tarea de liberar memoria puesto que java implementa un recolector
de basura que es encarga de esto.
3.4.7 Multihilo
Que es Multihilo?
Es la posibilidad de que un programa haga diferentes tareas al mismo tiempo,
la mayora de programas de PC son de un hilo lo que quiere decir que si se
lanza una tarea el programa tiene que esperar a que esta termine para seguir
con otra.
En Java es posible construir aplicaciones que ejecuten diferentes tareas al
mismo tiempo.
Un ejemplo aplicaciones Multihilos son los sistemas operativos que permiten
desarrollar diferentes tareas al mismo tiempo.
OO
Robusto
Seguro
Interpretado
Dinmico
Portable
Neutral
Multihilo
Rec. Basura
Excepciones
Rendimiento
S
S
S
S
S
S
S
S
S
S
S
Alto
SmallTalk
S
S
S
Regular
S
S
Regular
Regular
No
S
S
Medio
Perl
Regular
S
S
S
S
Si
No
S
S
No
S
Medio
C
Regular
No
No
No
No
No
Regular
No
No
No
No
Muy Alto
C++
No
Regular
S
S
No
No
Regular
No
No
No
S
Muy Alto
4 CONOCIENDO JAVA
4.1 Qu es JDK?
El JDK (Java Developers Kit) Kit de desarrollo de java, son un conjunto de
herramientas como un interpretador de java, un compilador, un descompilado,
un generador automtico de documentacin HTML entre otros.
El JDK proporciona las herramientas bsicas para un programador, pero estas
no son del todo productivas por lo cual es necesario utilizar IDE para el
desarrollo en java.
Actualmente existen entornos de desarrollo gratuitos muy potentes que hacen
que Java sea muy productivo, entre los cuales se encuentra eclipse, NetBeans,
JDeveloper, Forte y kawa entre otros.
No obstante es posible trabajar en java con un simple editor de texto y utilizar el
compilador de Java despus de haber escrito el cdigo, utilizando la siguiente
sentencia.
C:\> Javac miprograma.java
4.3.1 java.lang
Este paquete consiste de clases que son el corazn del lenguaje JAVA. Este
paquete incluye no slo envolturas para los tipos de datos bsicos como
Integer y String, sino tambin la manera de manejar errores por medio de las
clases Throwable y Error.
4.3.2 java.lang.io
El paquete java.io sirve como la biblioteca estndar de entrada y salida para el
lenguaje JAVA. Este paquete le permite un nmero ilimitado de posibilidades de
comunicacin al proporcionarle tanto tipos sencillos como la clase
StringBufferInputStream o complejos como la clase RandomAccessFile.
4.3.3 java.util
Este paquete es, esencialmente, una variedad de clases tiles que no
pertenecen a ningn otro paquete. Entre estas clases prcticas se encuentran
la clase Date, diseada para manipular y manejar las operaciones con fechas,
la clase Hashtable y los TADs (Tipos Abstractos de Datos), como Stack y
Vector.
4.3.4 java.net
Ya que JAVA es un lenguaje basado en red, este relativamente pequeo
paquete resulta ser muy til. Sobre todo, le proporciona la capacidad de
Comunicarse con otras fuentes de informacin creando o conectndose a
sockets o haciendo uso de los URLs y direcciones de Internet.
4.3.5 java.awt
El Abstract Window Toolkit (AWT) de JAVA contiene los recursos que usted
necesita para crear interfaces atractivas y tiles para sus applets. El AWT no
slo tiene herramientas de control, como el LayoutManager y Container, sino
que tambin cuenta con herramientas interactivas concretas, como Button
y TextField.
4.3.6 java.applet
El paquete java.applet proporciona una sola clase y tres interfaces, pero es uno
de los paquetes ms usados porque es la base de todos los applets. La clase
Applet es de suma importancia porque es necesaria cuando se crea un applet.
Tambin es til la interfaz AppletContext, la cual se usa para interactuar con el
Navegador.
boolean
cast
const
double
ninally
generic
import
interface
null
private
return
switch
throws
void
break
catch
continue
else
float
goto
inner
long
operator
protected
short
synchronized
transient
volatile
byte
char
default
extends
for
if
instanceof
native
uter
public
static
this
try
while
Tipo
Aritmticos
Relacinales
Condicionales
Desplazamiento
Asignacin
+
>
&&
>>
+=
>=
||
<<
-=
Operador
*
/
%
<
<= ==
!
>>> & |
*=
/= %=
^=
<<=
>>=
|=
++
!=
--
^
~
&=
>>>=
Tamao
8 bits
16 bits
32 bits
64 bits
32 bits
64 bits
16 bits
1 bit
Descripcin
Entero 1 byte
Entero corto
Entero
Entero largo
Pres. simple
Pres. doble
1 carcter
true/false
Verdadero
Calif>=3.0
Imprimir
Aprobado
Falso
Cdigo en java
if(Calif>=3.0)
{
System.out.println("Aprobado");
}
Imprimir
Reprobado
Verdadero
Falso
Calif>=3.0
Cdigo en java
if(Calif>=3.0)
{
System.out.println("Aprobado");
}else{
System.out.println("Reprobado");
Imprimir
Aprobado
Cdigo en java
switch(valor){
case1:
System.out.println("Opcion1");
break;
case2:
System.out.println("Opcion1");
break;
case3:
System.out.println("Opcion1");
break;
default:
System.out.println("NingunaOpcion");
break;
}
5.7.2 Buclas
5.7.2.1 Bucla for
Cdigo Java
for(inti=0;i<10;i++){
System.out.println("NumerodeVeces:"+i);
}
Codigo Java
while(enumeration.hasMoreElements()){
typeelement=(type)enumeration.nextElement();
}
Cdigo Java
do{
}while(condition);
5.8 Arreglos
Un arreglo es un tipo compuesto de variables del mismo tipo, estas variables
pueden ser a su vez de tipos simples (tipos primitivos) o compuestos (objetos).
Los arreglos pueden ser de una o ms dimensiones, y cada dimensin se
especifica con un par de corchetes.
Sintaxis para declarar arreglos
tipo identificador[];
tipo[] identificador;
Cdigo java
intnumeros[];
Stringcadenas[];
El tamao del arreglo se debe especificar por medio del operador new como se
muestra en el siguiente ejemplo:
identificador = new tipo[tamao];
Codigo java
numeros=newint[100];
cadenas=newString[100];
Columnas 2
Filas 3
0
0
0
0
0
0
Ejemplos:
En este ejemplo se muestra la declaracin de arreglos de enteros y el manejo
de dos tipos de buclas.
publicclassArreglos{
/**
*ConstructorforArreglos.
*/
publicArreglos(){
super();
}
publicstaticvoidmain(String[]args){
//Declaracindeunarreglodeenteros
int[]arreglo;
//Declaracindetamaodelarreglo
arreglo=newint[10];
//Buclaparallenarelarregloconnumerosparesdel2al
18
for(inti=0;i<10;i++){
arreglo[i]=i*2;
}
//BuclaParaimprimirlosvaloresqueseencuentranenel
arreglo
intj=0;
while(j<arreglo.length){
System.out.println(""+arreglo[j]);
j=j+1;
}
}
}
5.10.1
Paquetes.
A travs del comando package se provee una forma para agrupar algunas
clases que poseen relaciones por sus caractersticas, la utilidad ms esencial
de la utilizacin de esta sentencia es para la creacin de libreras.
El nombre del paquete debe coincidir fsicamente con el nombre del directorio
donde se pretende almacenar dichas clases.
Por ejemplo la clase Ejemplo contenida dentro del paquete
com.diegomez.modelo debe ser almacenada dentro de tres directorios as:
com/diegomez/modelo/Ejemplo.java
package com.diegomez.modelo;
public class Ejemplo {
/**
*
*/
public Ejemplo() {
super();
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
}
}
5.10.2
Importar paquetes
5.11.1Modificador public.
El modificador public es el mas comn y el mas fcil de comprender. Puede
aplicarse a una clase, mtodo o variable, este modificador implica que todo el
universo puede tener acceso a ese componente, es decir, si se declara una
clase publica el resto de clases tiene acceso a ella, si se declara un mtodo
publico todos tiene acceso a ese mtodo siempre y cuando se cumplan las
reglas de accesibilidad para la clase, lo mismo ocurre con las variables o
atributos declaradas publicas.
5.11.2Modificador private.
Este modificador solo puede ser usado en los mtodos y variables internas. En
las clases no se pueden utilizar ya que no tiene sentido crear una clase privada
(rompe con los paradigmas orientado a objetos). Algo como esto es incorrecto.
privateclassEjemplo{}//Errordecompilacin
Cuando se declara una variable o mtodo privado, se esta indicando que solo
la misma clase tendr acceso al mtodo o variable.
5.11.3Modificador default.
El modificador por default se puede utilizar tanto en una clase, mtodo o
variable, este modificador indica que solamente podrn acceder al elemento
aquellas clases o subclases que pertenecen al mismo paquete, incluida la clase
que posee componentes por default.
En el siguiente ejemplo dos clases pblicas ClaseA y ClaseB dentro de un
paquete. ClaseB llama a un mtodo de la ClaseA que esta declarado por
default.
Sin embargo, puede ocurrir que por ejemplo se trate de acceder desde fuera
del paquete, en ese caso no compilara ya que las reglas del default lo impiden.
package com.diegomez.modelo;
import carpeta.ClaseA;
public class ClaseC extends ClaseA {
public void metodoClaseC(){
metodoClaseA();
}
}
5.11.4Modificador protected.
El modificador protected solamente se aplica a los mtodos, variables y clases
o interfaces internas. Java no acepta la declaracin de una clase de tipo
protected. Algo como esto no se puede hacer.
protected class Class1(){} //Error de compilacin.
public
Si
Si
Si
Si
Si
protected
Si
Si
Si
Si
No
default
Si
Si
Si
No
No
private
Si
No
No
No
No
Sin embargo se puede decir que una clase es esttica cuando todos sus
mtodos y atributos son estticos.
La caracterstica del modificador static implica que solamente se creara en
memoria un espacio para el elemento declarado, sin importar la cantidad de
instancias que se pudiesen obtener de la clase que contenga el elemento.
6.1 Herencia
La herencia es una forma de reutilizacin del software en la que se crean
nuevas clases a partir de clases ya existentes absorbiendo sus atributos,
comportamientos y adornndolos con capacidades que las nuevas clases
requieren.
Para entrar al concepto de herencia es necesario conocer los conceptos de
Superclases y Subclases.
Una superclase es la clase padre de una subclase, pero esta a su vez puede
ser una superclase de otra subclase, en el siguiente ejemplo la clase Persona
es la superclase y Alumno es la subclase de la Superclase Persona.
Superclase
Subclase
6.2 Polimorfismo
El polimorfismo nos permite escribir programas de forma general para manejar
una amplia variedad de clases interrelacionadas existentes y por especificar. El
poliformismo facilita la adicin de capacidades nuevas a un sistema. La
herencia y el polimorfismo son tcnicas eficaces para lidiar con la complejidad
del software.
Para ser posible implementar el poliformismo es necesario el uso de clases
abstract y mtodos abstract, para el caso de las clases abstract nos permiten
heredar funcionalidad de esta como cualquier otra clase.
Los mtodos abstract en la Superclase son creados pero sin ninguna
funcionalidad, debido a que estos deben ser implementados en las subclases
con la funcionalidad que sea necesaria para esta.
Como en el ejemplo de la herencia presentaremos un diagrama UML y su
cdigo en Java.
Cdigo Java.
Superclase Empleado
publicabstractclassEmpleado{
privateStringapellido;
privateStringnombre;
publicEmpleado(StringNombre,StringApellido)
{
this.nombre=newString(Nombre);
this.apellido=newString(Apellido);
}
publicStringgetApellido(){returnapellido;}
publicvoidsetApellido(Stringapellido){this.apellido=
apellido;}
publicStringgetNombre(){returnnombre;}
publicvoidsetNombre(Stringnombre){}
/*Mtodosabstractosquedebenserimplementados
paracadatipodeempleado*/
abstractdoublecalculosalario();
}
Subclase Jefe
publicclassJefeextendsEmpleado{
privatedoublehoras;
publicdoublegetHoras(){returnhoras;}
publicvoidsetHoras(doublehoras){
this.horas=horas;
}
publicJefe(Stringnombre,StringApellido,doublehora)
{
//LlamaalconstructordelaclasebaseoEmpleado
super(nombre,Apellido);
setHoras(hora);
}
/*Aqusefijaelsalariodeljefequetieneuna
unaformadiferentedecalcularlo*/
publicdoublecalculosalario()
{
returnhoras*120000;
}
//SupereditoelmtodotoString
publicStringtoString()
{
return"Jefe:"+getNombre()+""+getApellido();
}
Subclase Vendedorcomision
publicfinalclassVendedorcomisionextendsEmpleado{
privatedoublecomision;
privateinttotalArticulos;
privatedoublesalary;
//Constructor
publicVendedorcomision(Stringnombre,Stringapellidos,double
salario,doublecomision,intarticulos)
{
super(nombre,apellidos);
setComision(comision);
setSalary(salario);
setTotalArticulos(articulos);
}
publicdoublegetComision(){returncomision;}
publicvoidsetComision(doublecomision){this.comision=
comision;}
publicintgetTotalArticulos(){
returntotalArticulos;
}
publicvoidsetTotalArticulos(inttotalArticulos){
this.totalArticulos=totalArticulos;
}
publicdoublegetSalary(){returnsalary;}
publicvoidsetSalary(doublesalary){this.salary=salary;}
publicdoublecalculosalario()
{
returnsalary+(comision*totalArticulos);
}
//SupereditoelmtodotoString
publicStringtoString()
{
return"VendedorComision:"+getNombre()+""+getApellido();
}
}
Subclase Obrero
publicfinalclassObreroextendsEmpleado{
privatedoublesalarioPorPieza;
privateintcantidadPiezas;
publicObrero(Stringnombre,Stringapellido,double
salporpieza,intcantidadpieza)
{
super(nombre,apellido);
setSalarioPorPieza(salporpieza);
setCantidadPiezas(cantidadpieza);
}
publicdoublegetSalarioPorPieza(){returnsalarioPorPieza;}
publicvoidsetSalarioPorPieza(doublesalarioPorPieza){
this.salarioPorPieza=salarioPorPieza;}
publicintgetCantidadPiezas(){
returncantidadPiezas;
}
publicvoidsetCantidadPiezas(intcantidadPiezas){
this.cantidadPiezas=cantidadPiezas;
}
publicdoublecalculosalario()
{
returncantidadPiezas*salarioPorPieza;
}
//SupereditoelmtodotoString
publicStringtoString()
{
return"Obrero:"+getNombre()+""+getApellido();
}
}
Como se puede observar para cada subclase la forma de calcular el salario del
empleado es diferente y solo la clase sabe como hacerlo, el siguiente cdigo
muestra como sacarle provecho a las ventajas que nos ofrece el poliformismo.
publicclassPolimorfismo{
/**
*ConstructorforPolimorfismo.
*/
publicPolimorfismo(){
super();
}
publicstaticvoidmain(String[]args){
//Secreaunarreglodetipoempleado
Empleadoarray[];
array=newEmpleado[3];
Jefejefe;
Obreroobrero;
Vendedorcomisionvendedor;
//Secreantrestiposdeempleadosdiferentes
jefe=newJefe("Pepe","Ventas",24);
obrero=newObrero("Carlos","Carrera",10,20);
vendedor=newVendedorcomision("Diego","Gomez",100,10,50);
/*Sealmacenajefe,obrero,vendedorenelarraydetipo
*Empleado*/
array[0]=jefe;
array[1]=obrero;
array[2]=vendedor;
/*Serecorreelarreglodetipopersonayseimprimeel
*nombredecadaempleadosinimportareltipoy
*seCalculaelsalariodecadaunosinimportarlaforma
*enquesecalculaestoesposibledebidoael
polimorfismo*/
for(inti=0;i<array.length;i++){
System.out.println(""+array[i].toString());
System.out.println("Salario:"+array[i].calculosalario());
}
}
}
Si usted observa los objetos jefe, obrero y vendedor son de diferentes tipos
pero se almacenan en un array de tipo Empleado, esto es posible debido a que
la clase Empleado es abstract y los objetos jefe, obrero y vendedor extienden
de Empleado. El Array de tipo Empleado toma diferentes formas segn se el
caso. Adema si observa la lnea donde se calcula el salario solo se le dice al
array que calcule el salario y el sabe como debe calcular este segn el tipo de
empleado.
6.3 Interfaces.
Una interfaz es como una clase pero que no permite que ninguno de sus
mtodos sea implementado. Adems, con las interfaces se crea el concepto de
herencia mltiple en Java. De tal manera, la regla indica que en una interfaz no
se debe realizar ninguna implementacin de mtodo, sino proveer la firma con
la cual otras clases pueden efectuar la implementacin.
La interfaz tiene como caracterstica que las variables que se declaran dentro
de ellas son consideradas como constantes y estticas.
public class MiClase implements MiInterface {
public static void main(String args[]){
System.out.println(i);
}
package com.diegomez.modelo;
public class ReproductorWav implements Reproductor {
public ReproductorWav() {
super();
}
public void play() {
//Implementacin del cdigo reproduccin de WAV
}
public void bucle() {
//Implementacin del cdigo para reducir reproduccin WAV
}
public void stop() {
//Implementacin del cdigo detener reproduccin de WAV
}
interface
Reproductor
+play:void
+bucle:void
+stop:void
+ReproductorAvi
+play:void
+bucle:void
+stop:void
+ReproductorWav
+play:void
+bucle:void
+stop:void
+ReproductorMp3
+bucle:void
+play:void
+stop:void
7.1 Qu es JDBC?
JDBC(Java Database Conectivity) es el API estndar de acceso a bases de
datos usando el lenguaje de programacin Java. Esta API se incluye con el kit
de desarrollo de Java versin 1.1 y posteriores.
Java no usa ODBC directamente Sun Microsystems creo una nueva API debido
a que ODBC utiliza funciones de bajo nivel que no son compatibles 100% con
Java, como lo son los punteros, esto hacia que java perdiera portabilidad.
Para poder hacer esto posible Sun se une a Intersolv para desarrollar un
puente entre JDBC y ODBC, ya que el acceso a bases de datos con ODBC es
un modelo estndar.
7.2.1 Nivel 1
Este fue desarrollado por JavaSoft usa el driver ODBC especfico para la Base
de Datos, requiere que el ODBC se encuentre disponible en la mquina cliente
donde se ejecuta la aplicacin JAVA.
El siguiente grafico muestra la arquitectura del driver de nivel 1.
7.2.2 Nivel 2
Este utiliza JAVA para hacer llamadas al API de acceso (protocolo) del DBMS
que debe estar disponible en el cliente. El driver es una implementacin
parcialmente hecho en JAVA por JavaSoft.
El siguiente grafico muestra la arquitectura del driver de nivel 2.
7.2.3 Nivel 3
Utiliza los protocolos de red que vienen con el JDK para conectarse a un
servidor. En el servidor se traducen los requerimientos a transacciones del
DBMS.
No requiere cdigo ejecutable en el lado del cliente (del API de acceso al
DBMS). El protocolo de red que se utiliza es genrico, por lo tanto el mismo
driver puede acceder a diferentes DBMS.
El siguiente grafico muestra la arquitectura del driver de nivel 3.
7.2.4 Nivel 4.
Driver completamente escrito en JAVA este se comunica directamente a la base
de datos con el protocolo de red del DBMS.
Esta comunicacin directa se implementa a travs de conexiones de red
(sockets).
El siguiente grafico muestra la arquitectura del driver de nivel 4.
Los Drivers para conectarse a la bases de datos son provistos por el proveedor
de la base de datos o en la siguiente direccin del sitio Java, de Sun
Microsystem http://java.sun.com/products/jdbc
JAVA
String
String
String
java.math.BigDecimal
java.math.BigDecimal
boolean
byte
short
int
long
float
double
byte[]
byte[]
byte[]
java.sql.Date
java.sql.Time
java.sql.Timestamp
Ejemplo 1
Este programa se conecta a la base de datos y saca los datos de los
estudiantes que se encuentran en la tabla estudiantes, usando los cinco pasos
mencionados anteriormente.
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
/**
*@authorDiegoArmandoGmez
*/
publicclassJdbcEjemplo1{
/**
*ConstructorforJdbcEjemplo1.
*/
publicJdbcEjemplo1(){
super();
}
publicstaticvoidmain(String[]args){
Connectionconnection;
ResultSetrs;
Statementst;
Stringsql="SELECT*FROMestudiantes;";
try{
/*Enestalineasecargaeldriver
*JDBCnivel4demySql*/
//Paso1CargareldriverJDBC
Class.forName("com.mysql.jdbc.Driver");
}catch(Throwablee){
//SeAtrapalaexecption
System.out.println("ErrorCargandoel
Driver"+e.toString());
}
//Conexionymanipulaciondedatos
try{
//paso2Conectarsealabasededatos
connection=
DriverManager.getConnection("jdbc:mysql://127.0.0.1/seminario","","");
//Paso3CrearelobjetoStatement
st=connection.createStatement();
//Paso4EjecutarlasentenciaSQl
rs=st.executeQuery(sql);
//Paso5Procesarlosresultados
while(rs.next()){
System.out.println("Codigo:"+rs.getInt("codigo"));
System.out.println("Nombre:"+rs.getString("nombres"));
System.out.println("Apellidos:"+rs.getString("apellidos"));
System.out.println("email:"+rs.getString("email"));
}
rs.close();
st.close();
connection.close();
}catch(SQLExceptionse){
System.out.println("Error:"+se.toString());
}
}
}
Ejemplo 2.
Este programa pide el cdigo de un estudiante, se conecta a la base de datos
busca las notas de el estudiante en la base de datos utilizando un
PreparedStatement el cual es diferente al Statementdebido a que esta es una
instruccin precompilada lo que la hace ser mas rpida.
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
/**
*@authorDiegoArmandoGmez
*/
publicclassJdbcEjemplo2{
/**
*ConstructorforJdbcEjemplo2.
*/
publicJdbcEjemplo2(){
super();
}
publicstaticvoidmain(String[]args){
Connectionconnection;
ResultSetrs;
PreparedStatementpst;
Stringsql="SELECT*FROMestudiantes;";
java.io.BufferedReaderl=newjava.io.BufferedReader(new
java.io.InputStreamReader(System.in));
Stringcod=newString();
try{
/*Enestalineasecargaeldriver
*JDBCnivel4demySql*/
//Paso1CargareldriverJDBC
Class.forName("com.mysql.jdbc.Driver");
}catch(Throwablee){
//SeAtrapalaexecption
System.out.println("ErrorCargandoel
Driver"+e.toString());
}
//Conexionymanipulaciondedatos
try{
//paso2Conectarsealabasededatos
connection=
DriverManager.getConnection("jdbc:mysql://127.0.0.1/seminario","","");
//Leedelaconsolaelcodigodelestudiante
System.out.print("Digiteelcodigo:");
cod=l.readLine();
//Paso3CrearelobjetoprepareStatement
pst=connection.prepareStatement("SELECT*FROMnotas
wherecodigoestudiante=?");
pst.setInt(1,Integer.parseInt(cod));
//Paso4EjecutarlasentenciaSQl
rs=pst.executeQuery();
//Validaqueelrstengadatos
if(rs.next()!=true)
{
System.out.println("Noexisteelestudiante");
}
//Paso5Procesarlosresultados
while(rs.next()){
System.out.println("Nombre
Materia:"+rs.getString("nombremateria"));
System.out.println("Nota:"+rs.getFloat("nota"));
}
rs.close();
pst.close();
connection.close();
}catch(Throwablese){
System.out.println("Error:"+se.toString());
}
}
}