conexiÓn de base de datos con java - aleksandr quito perez

27
Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez. 1 CONEXIÓN DE BASE DE DATOS CON JAVA Para iniciar este capitulo debemos de tener presente que cuando se intenta conectar Java, con cualquier motor de base de datos necesitamos conocer si la relación de Conexión de Java con el motor de base de datos es de tipo directa o indirecta. Antes de esto definamos que es un controlador JDBC(Java Database Connectivity), el cual es un interfase de comunicación que permite la ejecución entre Java y cualquier motor de Base de Datos. Conexión Directa.- A la derecha, el controlador JDBC accede directamente al controlador del fabricante (DB Client Lib); este tipo de controladores JDBC se denominan de nivel 3 ó 4. Entre los manejadores de base de datos que poseen una conexión directa con Java, tenemos a: My Sql, Sybase DB2, Oracle. Ya que estas no necesitan un puente para comunicarse, el trabajo y la conexión son mucho más rápidos que una conexión indirecta. Conexión Indirecta.- A la izquierda el controlador JDBC hace de "puente" con el controlador ODBC, que es el que accede a la base de datos, este es un esquema de un controlador JDBC de nivel tipo 1. Entre los manejadores de base de datos que necesitan de un puente ODBC para conectarse con Java, tenemos a las marcas, Access, Microsoft SQL Server, Informix, entre otros.

Upload: aleksandr-paul-quito-perez

Post on 10-Jun-2015

61.497 views

Category:

Documents


7 download

DESCRIPTION

Guia, de como realizar una conexion de java con base de datos, este manual contiene ejemplos de aplicacion 100% desarrollados. en My Sql y Ms Sql Server. Aleksandr Quito

TRANSCRIPT

Page 1: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

1

CONEXIÓN DE BASE DE DATOS CON JAVA Para iniciar este capitulo debemos de tener presente que cuando se intenta

conectar Java, con cualquier motor de base de datos necesitamos conocer si la

relación de Conexión de Java con el motor de base de datos es de tipo directa o

indirecta.

Antes de esto definamos que es un controlador JDBC(Java Database Connectivity),

el cual es un interfase de comunicación que permite la ejecución entre Java y

cualquier motor de Base de Datos.

Conexión Directa.- A la derecha, el controlador JDBC accede directamente

al controlador del fabricante (DB Client

Lib); este tipo de controladores JDBC se

denominan de nivel 3 ó 4.

Entre los manejadores de base de datos

que poseen una conexión directa con

Java, tenemos a: My Sql, Sybase DB2,

Oracle. Ya que estas no necesitan un

puente para comunicarse, el trabajo y la

conexión son mucho más rápidos que una

conexión indirecta.

Conexión Indirecta.- A la

izquierda el controlador JDBC hace de

"puente" con el controlador ODBC, que

es el que accede a la base de datos, este

es un esquema de un controlador JDBC

de nivel tipo 1.

Entre los manejadores de base de datos que necesitan de un puente ODBC para

conectarse con Java, tenemos a las marcas, Access, Microsoft SQL Server,

Informix, entre otros.

Page 2: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

2

LOS URL de JDBC.- La noción de un URL en JDBC es muy similar al modo

en que los URL se utilizan en otras situaciones. Para poder entender la base lógica

de los URL de JDBC, consideremos una aplicación que utiliza diversas bases de

datos; a cada base de datos se accede mediante diferentes driver, dependiendo del

fabricador de base de datos.

Los URL de JDBC proporcionan un modo de identificar un driver de base de datos,

en el caso de una conexión directa. Un URL de JDBC representa un dirver y la

información adicional específica del driver para localizar una base de datos y

conectarla a él. La sintaxis del URL de JDBC es como sigue:

Se puede observar que están separadas en tres partes por dos puntos.

� Protocolo: jdbc es el protocolo. Este es el único protocolo permitido en

JDBC.

� Sub-protocolo: el sub-protocolo es utilizado para identificar un driver de

base de datos o el nombre de un mecanismo de conectividad de una base de

datos, elegido por los proveedores del driver de base de datos.

� Subnombre: la sintaxis del subnombre es específica de driver. Un driver

puede elegir cualquier sintaxis apropiada para su implementación.

Por ejemplo en una conexión directa con DB2, y una base de datos de nombre

libros, seria:

y para una conexión indirecta con Microsoft SQL Server utilizando un punte de

datos JDBC-ODBC de nombre libros, nuestro URL seria:

Importante: Para realizar una conexión con alguna base de datos debemos de importar el paquete:

� java.sql.*.- Este paquete contiene clases e interfaces diseñadas teniendo en mente la arquitectura tradicional cliente-servidor. Su funcionalidad se centra primordialmente en servicios de programación básicos de bases de datos, como creación de conexiones, ejecución de instrucciones e instrucciones preparadas.

Dentro de los paquetes que más usaremos en estar sección se encuentran:

� java.sql.DriverManager.- Esta clase proporciona la funcionalidad necesaria para gestionar uno o mas drivers de base de datos.

� java.sql.ResultSetMetaData.- Esta interfaz proporciona métodos para acceder a metadatos del Resultset, como los nombres de las columnas, sus tipos, el nombre de tabla correspondiente y otras propiedades.

� java.sql.SQLException.- Esta excepción representa todas las condiciones

de excepción relacionadas con JDBC . � java.sql.Connection.- representa una conexi6n con una base de datos.

jdbc:<subprotocolo>:<subname>

jdbc:db2j:libros

Page 3: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

3

DRIVER MANAGER.- El propósito de la clase java.sql.DriverManager (gestor de driver) en JDBC es proporcionar una capa de acceso común encima de

diferentes drivers de base de datos utilizados en una aplicación. En este enfoque las

aplicaciones utilizan la clase DriverManager para obtener conexiones, a través de su

argumento URL.

Por ejemplo para Ms SQL Server el driver seria:

try{

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

}catch(ClassNotFoundException e){

} El bloque try – catch es necesario para establecer la conexión, esto para saber de

algún problema existente cuando se ejecute la conexión con el driver dentro del

bloque try, el bloque catch, tiene como función capturar el tipo de error

generado, al no poder conectarse con la base de datos.

En el ejemplo basado en Ms SQL Server, el código utiliza un driver ODBC , donde

“libros” es un DNS fijado en la configuración de ODBC (después explicaré como

realizar esta configuración de ODBC). Este DNS corresponde a una base de

datos que requiere un nombre de usuario y una contraseña para obtener una

conexión:

String URL=”jdbc:odbc:libros”;

String user=”sa”;

String pass=””;

Connection conn=DriverManager.getConnection(URL,user,password); En muchas ocasiones es necesario especificar el tiempo máximo que debe esperar

un driver mientras intenta conectar a una base de datos. Los siguientes dos

métodos pueden ser utilizados par fijar/obtener (set/get) el tiempo limite de

registro:

Nota: La mayoría de manejadores de base de datos, además de una URL y Driver,

poseen un nombre de usuario (USER) y un respectivo Password (PASS), para

poder obtener la conexión hacia una determinada base de datos.

jdbc:odbc:libros

Page 4: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

4

public static void setLoginTimeout(int segundos){ }

public static void getLoginTimeout( ){ }

• Para resumir la teoría mencionada creare una clase netamente para la

conexión con una base de datos, usaremos en este ejemplo la conexión con

SQL Server:

Ahora si deseamos conectarnos con MySQL, el proceso es similar que el anterior

hecho para Ms SQL Server, solo debemos de cambiar el contenido de Driver,

URL, user, pass tal como se muestra:

String Driver = "com.mysql.jdbc.Driver";

String URL = "jdbc:mysql://localhost:3306/libros";

String user = "root";

String pass = "root"; � la contraseña puede variar según el usuario. Esta parte observemos, la diferencia que hay con los parámetros antes puestos

para establecer la conexión con Ms SQL Server. Como la conexión con MySQL con

Java es directa, observamos que en la parte de URL, no hay ningún puente ODBC.

Debemos de recordar que para cada manejador de base de datos de conexión

directa existen drivers distintos, el cual debemos de instalar antes. Pero para las

ultimas versiones del NetBeans y otros IDE’s para java, los driver mas usados

están contenidos dentro de la instalación del Netbeans.

Page 5: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

5

CREAR Y EJECUTAR SENTENCIAS SQL En esta sección es recomendable que el lector tenga conocimiento en como realizar

consultas o listados en SQL, tal como el uso del SELECT – también para Insertar

(INSERT), modificar (UPDATE) y eliminar (DELETE).

Podemos utilizar un objeto Connection para ejecutar instrucciones SQL creando un

Statement, un PreparedStatement o un CallableStatement. Estos objetos

abstraen instrucciones SQL normales, instrucciones preparadas y procedimientos

almacenados respectivamente. Una vez hemos obtenidos unos de esos objetos de

instrucciones, podemos ejecutar la instrucción y leer resultados gracias a un objeto

ResultSet..

Conexión Memoria Pasos para la ejecutar una sentencia SQL con Java:

1. getConnection() : primero obtenemos la conexión.

2. PreparedStatement : prepara un comando SQL.

3. executeQuery() : ejecuta la instrucción SQL que se preparo en lo

anterior.

4. ResultSet : lleva a memoria los datos de una consulta SQL.

5. next() : lee fila por fila los datos que están en

memoria.

OBTENCIÓN DEL ORIGEN DE DATOS ODBC

(Open Database Connectivity).

Definición: Una aplicación de Conectividad abierta de bases de datos (ODBC)

utiliza un origen de datos ODBC para conectarse a una instancia de Microsoft SQL

Server.

Un origen de datos ODBC es una definición almacenada que registra:

• El controlador ODBC que se va a utilizar para las conexiones que especifican

el origen de datos.

• La información que utiliza el controlador ODBC para conectarse a un origen

de datos.

Servidor Clases

Page 6: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

6

• Opciones específicas del controlador que se van a utilizar para la conexión.

Por ejemplo, un SQL Server origen de datos ODBC puede registrar las

opciones de ISO que va a utilizar o si los controladores deben registrar

estadísticas de rendimiento.

Cada origen de datos ODBC de un cliente tiene un nombre del origen de datos

(DSN) exclusivo. Un origen de datos ODBC para el controlador ODBC de SQL

Server incluye toda la información utilizada para conectarse a una instancia de SQL

Server, más las opciones fundamentales.

A continuación presento los pasos de configuración del

ODBC – Puente de Datos:

Paso1: entramos a

Inicio�Ejecutar, y escribimos

ODBCAD32, tal como se muestra:

O la otra manera para ingresar al

administrador de Orígenes ODBC,

es ir al Panel de

Control�Rendimiento y

Mantenimiento � Orígenes de Datos ODBC. Esto para Windows XP.

Nos saldrá la siguiente ventana.

Luego de aquí, daremos clic en Agregar, y nos aparecerá la siguiente ventana,

donde crearemos nuestro nuevo origen de datos, como en esta oportunidad

trabajaremos con Microsoft SQL Server escogeremos en la parte final SQL Server:

Page 7: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

7

Damos clic en Finalizar y nos saldrá el siguiente asistente, en el cual contiene los

siguientes campos a llenar:

Nombre: Se refiere al nombre de origen de datos que tendrá nuestro

DNS(exclusivo) para conectarnos con Java en esta ocasión.

Para este ejemplo ponemos en la casilla la palabra: notas

Descripción: Aquí se coloca una breve descripción, sobre el origen de

datos, por ejemplo: “Puente de BDNotas. Si se desea se

puede dejar en blanco.

Servidor: En esta parte colocaremos con que servidor nos estamos

conectando a SQL Server, en general de conecta de forma

local, si es este el caso hay varias formas, se puede poner en

esta casilla un simple punto “.”, o también escribir la palabra

(LOCAL), entre paréntesis, o la otra forma es colocar el

nombre de la maquina.

Page 8: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

8

El nombre es muy importante recordarlo por que este es el nombre del Puente

JDBC-ODBC que pondremos en la URL de la Clase Conexión, similar a la que

aparece en la pagina 3, con el nombre “libros”.

Damos clic en Siguiente y nos saldrá lo siguiente:

En el cual activaremos el radio botón donde dice: Con la autentificación de SQL

Server, al hacer esto se activara las dos casillas de la parte inferior de la ventana.

Donde pondremos un Id de Inicio y un pass, esto dependiendo de cómo hemos

ingresado al Analizador de consulta de SQL Server. Es muy probable que hayamos

ingresado con el Id de Inicio “sa” (Server Authentication), y el pass en blanco. Tal

como se muestra:

Antes de darle Siguiente, debemos de asegurarnos de que la base de datos a la que

queremos crearle el puente JDBC-ODBC, ha sido ejecutada desde el analizador de

Page 9: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

9

consultas de Ms SQL Server, por decir. Si este paso ya ha sido tomado en cuenta

podemos proseguir.

Paso 2: Luego de damos clic en Siguiente:

Aquí se escoge la base de datos con que trabajaremos, para efectos del próximo

ejemplo escogemos la base de datos “bdnotas”, luego damos clic en Siguiente ����

Finalizar ����Aceptar ����Aceptar y listo.

- Debemos de tener en claro el concepto de programación orientada a objetos, en

paginas anteriores se resumió la teoría expuesta sobre conexiones, de Java con

Ms Sql Server, en una sola clase, esto lo hacemos porque mas adelante no

necesitare crear la clase Conexión para cada proceso que se realice con Java, sino

que a esta clase la volvemos reutilizables en varias partes del código. Para efectos

de un mayor entendimiento propongo un ejemplo:

Observación: Podemos comprobar que todo salio correctamente, en la creación del origen de datos ODBC, cuando en la primera ventana mostrada en la página 5 aparezca algo similar a esto:

Page 10: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

10

EJEMPLO DE APLICACIÓN: Utilizando la base de datos BDNOTAS: en el cual esta contenida las siguientes tablas y columnas:

ALUMNO

� IDALUMNO : Código de alumno

� APEALUMNO : Apellido del Alumno

� NOMALUMNO : Nombre del Alumno

� IDESP : Código de especialidad

� PROCE : Procedencia

CURSO

� IDCURSO : Código del curso.

� NOMCURSO : Nombre del curso.

� CREDITO : Créditos del curso.

ESPECIALIDAD

� IDESP : Código de especialidad

� NOMESP : Nombre de la especialidad.

� COSTO : Costo de la especialidad.

NOTAS

� IDALUMNO : Código de alumno

� IDCURSO : Código del curso.

� EXAPARCIAL : Examen Parcial.

� EXAFINAL : Examen final

PAGOS

� IDALUMNO : Código de alumno

� CICLO : Ciclo

� NCUOTA : Numero de cuota.

� MONTO : monto a pagar

� FECHA : fecha del pago

Se pide que al ingresar por teclado el código de un alumno, este muestre los

siguientes detalles: Idalumno, nomAlumno, Apealumno, nomCurso,

exaParcial, exaFinal, Promedio, Observación (aprobado/desaprobado).

IDALUMNO

IDESP

IDCURSO

Page 11: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

11

Solución: Paso 1: Ingresaremos al Netbeans, creamos un nuevo Proyecto JavaAplication, le

ponemos un nombre, y dentro de este proyecto crearemos 2 paquetes (Java

Package), el primer paquete de nombre Clases, contendrá

todas las clases necesarias para implementar este

programa; el segundo paquete de nombre Formulario,

contendrá el diseño de nuestro formulario haciendo uso

de objetos.

Dentro del paquete Clases, crearemos las siguientes clases:

Paso 2: Procedemos al llenado de la clase alumno, esta clase solo

estableceremos los atributos del alumno, pedidos, tal como su código, nombre,

apellido, curso, examen parcial, examen final, luego con estos atributos, podemos

crear métodos para el promedio final, así como para el nombre completo del

alumno, ya que si observamos en los campos de la base de datos estos están por

separados, luego para generar los colores de la observación

(aprobado/desaprobado).

Hacemos doble clic sobre la clase Alumnos.java – el cual nos saldrá la ventana

para editar el código, procedemos al llenado de la clase:

Observación: Cuando trabajemos con base de datos debemos de considerar, el tipo de datos que tienen sus atributos, si son varchar, char ����String - int ���� int , float, numeric(8,2), real ����double , esto para saber que tipo de dato pondremos al declarar los atributos en java. Los campos que utilizaremos en este ejemplo tienen los tipos de datos siguientes:

� idAlumno char (5) � String � apeAlumno varchar (30) � String � nomAlumno varchar (30) � String � nomCurso varchar (35) � String � exaParcial real � double ó int � exaFinal real � double ó int

SQL JAVA

Page 12: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

12

Clase Alumnos: aquí hemos establecidos los atributos y métodos a utilizar en esta

aplicación:

Para completar esta parte de la clase Alumno.java, necesitamos crear sus

métodos accesores Set y Get, para esto nos ubicamos en cualquier parte del

código, damos clic derecho buscamos Refactor���� Encapsulate fields, y nos saldrá

la ventana en donde seleccionaremos todo Select All, luego damos Refactor.

Page 13: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

13

quedando el código de la clase Alumno.java, como sigue:

Se aprecia que se han creado los métodos set y get, para cada atributo de la clase.

Se recomienda no copiar, el código tal como se muestra en la figura, ya que por

razones de espacio, se están omitiendo algunos métodos accesores y llaves de

cierre, lo recomendable es hacerlo, con las sugerencias que expongo líneas arriba.

Con esta parte terminamos todo lo que contendrá la clase Alumnos.java

Page 14: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

14

Paso 3: Continuando con nuestro programa ahora debemos de crear la conexión,

similarmente a lo que expongo en la pagina 4 de este texto, para efectos de este

ejemplo haremos la conexión con Ms Sql Server 2000, posteriormente lo Hare

con MySQL .

Entonces nos ubicamos en la clase Conexión.java que se creo en el paquete

Clases de nuestro ejemplo, damos doble clic y editamos el siguiente código:

Clase Conexión.

Debemos de tener presente el “Nombre de origen de datos”, para nuestra

aplicación, recordando lo que se hizo en el tema de Configuración del Origen de

Datos ODBC. Según esto sabemos que hemos creado nuestro origen de datos con

el nombre “notas” el cual se hizo en la página 6 de este texto, se debe hacer toda

esta configuración, porque como estamos trabajando con Ms Sql Server, este

requiere un puente de datos, para la comunicación con Java.

Paso 4: Ahora es el turno de codificar la parte de la clase Proceso.java,.

Para entender de una manera clara lo que se hará en esta parte, se debe de tener

conocimiento de lo que se expuso con anterioridad, (getConnection,

PreparedStatement, ResultSet) también usaremos la clase ArrayList & List, para

hacer un listado general.

El código del proceso se muestra a continuación:

Page 15: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

15

Clase Proceso: Primero creamos un método del tipo List<Alumnos>, que será

un lista de la clase Alumnos, el cual recibirá como parámetro el código de un

alumno, luego este código se asociara con el “?” que se encuentra en la sentencia

sql, se aprecia que la sentencia se encuentra agrupada en varias cadenas +” ”+,

esto por falta de espacio, pero también se puede escribir toda esta sentencia en

una sola línea.

Luego dentro de un bloque try – catch se prepara la sentencia sql con la clase

PreparedStatement.

En la parte donde dice: st.setString(1, cod_alumno); - esto se refiere al

parámetro que se recibiendo en el método, el numero 1 significa la posición del “?”

de la sentencia sql. cod_alumno, es la variable que recibe un valor, el cual se

asignara en el “?”. Por decir: cod_alumno=”A0003”, entonces este valor de

“A0003” se reemplazara por “?” que se encuentra en la sentencia sql. Quedando

idalumno=’A0003’ para el sql.

Page 16: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

16

En la parte de ResultSet rs=st.escuteQuery();esto nos quiere decir que cuando

ejecutemos una consulta st.escuteQuery(), esta sea llevada a memoria a través

de ResulSet y se almacenara en rs.

Luego en el While(rs.next()), estamos recorriendo todo lo que esta memoria,

pero por el uso del next(), estamos recorriendo o leyendo fila por fila.

Lo que se hace en esta parte es crear un objeto de la clase Alumnos, para llamar a

sus métodos, cuando hacemos por ejemplo en a.setCodigo(rs.getString(1)); el

método rs.getString(1), captura el valor que tiene la memoria en la posición 1 de la

sentencia sql (idalumno). Para luego almacenar estos valores en a.setCodigo.

Es decir: observemos que en la consulta sql, las posiciones de los campos, son los

siguientes:

Campos Posiciones Tipo de datos Método Java

Idalumno 1 String getString()

ApeAlumno 2 String getString()

NomAlumno 3 String getString()

NomCurso 4 String getString()

ExaParcial 5 int getInt()

ExaFinal 6 int getInt()

Luego por ultimo se agrega todo esta a la lista con “lista.add(a);”. Y se retorna la

lista.

Paso 5: esta parte haremos la creación de un JFrame, para realizar nuestro

formulario, Sobre el paquete formulario New����JFrame Form.

Alumnos a=new Alumnos();

a.setCodigo(rs.getString(1));

a.setApellido(rs.getString(2));

a.setNombre(rs.getString(3));

a.setCurso(rs.getString(4));

a.setExaParcial(rs.getInt(5));

a.setExaFinal(rs.getInt(6));

lista.add(a);

Page 17: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

17

Le ponemos de nombre “Formulario”, luego aparecerá esta ventana vacía.

Dentro de esta ventana arrastraremos lo componentes Label, TextField, Table,

Button, que están en la paleta de java.

Quedando tal como se muestra:

En el campo TextField, vamos asignarle el nombre de variable tcod, esto se hace

dando clic derecho sobre la caga y seleccionando Change Variable Name, luego

saldrá el siguiente cuadrito, en donde pondremos:

Para el botón, solo le hemos cambiado

el nombre con Edit Text – “Buscar” ,

y el nombre de variable , le puse

“BuscarXCodigo”. Similar a lo que se

hizo con la cajita Text Field.

Similarmente debemos de cambiar el

nombre de variable de la tabla, para este

ejemplo cambiémoslo por “tabla1”. Para

ello damos clic derecho en la tabla y

escogemos Change Variables Name

Page 18: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

18

Paso 6: Ahora procedemos a crear un evento, para que genere la acción, esto se

hace posicionándose sobre el botón “Buscar”, clic derecho, tal como se muestra:

Luego de esto aparecerá el siguiente código:

Dentro del método del botón necesitamos, que al hacer clic en el botón, este

obtenga el valor de la cajita Text Fields, para luego pasarlo al método de la clase

proceso:

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

// TODO add your handling code here:

}

Page 19: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

19

La codificación completa para el formulario de este programa se muestra a

continuación:

Se puede observar que hemos creado objetos de la clase DefaultTableModel y

Proceso (importando sus librerías). Luego dentro del constructor por defecto de la

Clase Formulario, estamos agregando las columnas con sus respectivos nombres

que deseamos apreciar en la tabla.

Recordemos que la variable “tabla1” es el que asignamos a la tabla.

Page 20: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

20

En el método BuscarXCodigo, estamos capturando el código ingresado por teclado

con: String cod=tcod.getText();

Luego dt.setRowCount(0); - se utiliza esto para limpiar la tabla cada vez que

hagamos un listado nuevo.

Luego estamos utilizando un for del tipo iterativo, Este for que pertenece a la clase

Alumnos, recorrerá el listado de la clase proceso al recibir un código por teclado.

Por ultimo dentro del for, agregaremos el contenido de las filas dentro de un

Objeto[] el cual no tiene una longitud limite de datos, esto se hace con:

dt.addRow(new Object[]{x.getCodigo(),x.getApellido(),x.getCurso(),

x.getExaParcial(),x.getExaFinal(),x.Promedio(),x.Observacion()});

si observamos estamos agregando los datos en cada filas de la columnas que

hemos creado en el método constructor por defecto de la clase Formulario.

Al Ejecutar esta aplicación, dando en RUN sobre la clase Formulario se obtiene el

siguiente resultado:

Recordemos: que para este problema hemos utilizado, como manejador de base de datos a Ms Sql Server, para el cual hemos hecho la conexión en este ejemplo. En la siguientes paginas planteo, el mismo problema pero ahora trabajando con My Sql, o su parte Visual de MySQL Front. Lo que debemos de considerar que el trabajo con My sql es mas rápido que el trabajo con Ms Sql Server. Por lo antes ya expuesto sobre conexión directa e indirecta.

Page 21: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

21

TRABAJANDO CON MY SQL FRONT 5.1 Para realizar el trabajo de conexión java con MySQL, debemos de importar las

tablas contenidas en el Ms Sql Server, para ello empezaremos abriendo el

programa My Sql Front 5.1 (distribución gratuita).

Paso 1: Una vez abierta la sesión con MySQL Front, (para cualquier duda sobre el inicio de sesión con My sql Front consulte el documento sobre instalación de my

sql & My sql front 5.1). Tal como se muestra:

En esta ventana, buscamos en la primera columna donde dice “localhost” la

seleccionamos, luego nos dirigimos en la barra de herramientas del programa,

damos clic en Base de Datos ����nueva base de datos, tal como se muestra:

Luego el sistema mostrara la siguiente ventana:

Le ponemos el nombre a nuestra base de datos “bdnotas” , tal como se muestra: Aceptar. Siempre debemos de considerar que para migrar de una base de datos a otra, la base de datos destino, debe de estar vacía. Es por eso que en este caso nuestra base de datos destino será la de MySQL , por tal razón estamos creando esta base de datos nueva.

Page 22: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

22

Paso 2: Luego de dar aceptar, observaremos que la columna de la izquierda

apareció nuestra nueva base de datos, la cual esta totalmente vacía:

Ahora estamos listos para importar los datos de Ms Sql Server a My Sql, a través

del puente de datos que creamos anteriormente, entonces hacemos lo siguientes,

seleccionamos la base de datos que acabamos de crear “bdnotas”, clic derecho

importar ����Tabla ODBC, tal como se muestra:

Luego saldrá la siguiente ventana, que contiene los nombres de todos los puentes

de datos que se encuentran en la maquina, para nuestro ejemplo seleccionamos el

puente de datos “notas”, con el cual estuvimos trabajando para la conexión con

Ms sql Server.

Paso 3: Luego de seleccionar nuestro puente de datos, damos clic en aceptar, y

nos saldrá ala siguiente ventana, donde colocaremos el usuario – de cómo hemos

entrado al sql, ponemos tal como se muestra en la siguiente imagen:

Page 23: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

23

Damos clic en aceptar y saldrá las tablas, que contiene ese puente de datos,

seleccionamos todas y le damos clic en Adelante >.

Luego damos Adelante, hasta llegar al final de esta petición luego, apreciaremos

que se importaran las tablas a nuestra nueva base de datos “bdnotas”:

Page 24: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

24

Paso 4: Después de que haya terminado de importar las tablas, cerramos esta

ventana y observaremos que ya se han generado las tablas en nuestra nueva base

de datos,

Para asegurarnos que la importación salió correctamente podemos ejecutar alguna

consulta con el “Editor de SQL”, dentro de esta sección podemos escribir todas las

consultas que queramos, por ejemplo:

Esto seria todo hasta el respecto de la importación de Ms Sql Server hacia My Sql.

CONEXIÓN CON MY SQL.- recordando lo que se dijo anteriormente sobre la

conexión de My Sql, y Java debemos de tener presente que solo cambian en la

conexión: Driver, URL, user, pass:

String Driver = "com.mysql.jdbc.Driver";

String URL = "jdbc:mysql://localhost:3306/bdnotas";

String user = "root";

String pass = " ";

Considerando esto, modifiquemos el contenido de los atributos

Driver,URL,user,pass, tal como se muestra en lo anterior, una vez realizados los

cambios, el código de la clase Conexión.java, quedaría como sigue:

Page 25: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

25

Luego antes de correr, el programa es necesario añadir la librería de MySQL a

nuestro proyecto, para ello nos dirigimos a la tasita de nuestro proyecto clic

derecho sobre ella: Propiedades, tal como se muestra:

Page 26: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

26

Luego nos saldrá la siguiente ventana, en la cual escogeremos Librerias,

posteriormente, agregaremos la librería de MySQL con el botón AddLibrary.

Tal como se muestra:

Al dar clic sobre AddLibrary , aparecerá una nueva ventana en donde

escogeremos lo siguiente:

Clic en Add Library, se verifica así:

Luego OK a esta ventana, y ahora si podemos correr nuestra aplicación con las

modificaciones hechas:

Page 27: CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandr Quito Perez

Conectividad de Bases de Datos con Java. Por: Aleksandr Paúl Quito Pérez.

27

Lo importante aquí es observar que el tiempo de respuesta del trabajar con

MySQL, es mucho más rápido, que el de Microsoft Ms Sql Server.

Por: Aleksandr Paúl Quito Pérez Estudiante de Ingeniería de Sistemas

Universidad Tecnológica del Perú Marzo - 2009