Beruflich Dokumente
Kultur Dokumente
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.
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.
1
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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.
jdbc:<subprotocolo>:<subname>
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:
jdbc:db2j:libros
y para una conexión indirecta con Microsoft SQL Server utilizando un punte de
datos JDBC-ODBC de nombre libros, nuestro URL seria:
2
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
jdbc:odbc:libros
}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.
String URL=”jdbc:odbc:libros”;
String user=”sa”;
String pass=””;
Connection conn=DriverManager.getConnection(URL,user,password);
3
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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.
4
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
5
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
Paso1: entramos a
InicioEjecutar, y escribimos
ODBCAD32, tal como se muestra:
6
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
Damos clic en Finalizar y nos saldrá el siguiente asistente, en el cual contiene los
siguientes campos a llenar:
7
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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:
8
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
consultas de Ms SQL Server, por decir. Si este paso ya ha sido tomado en cuenta
podemos proseguir.
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.
9
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
ALUMNO
IDALUMNO : Código de alumno
IDALUMNO
APEALUMNO : Apellido del Alumno
NOMALUMNO : Nombre del Alumno
IDESP : Código de especialidad
IDESP
PROCE : Procedencia
CURSO
IDCURSO : Código del curso.
NOMCURSO : Nombre del curso. IDCURSO
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).
10
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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.
Los campos que utilizaremos en este ejemplo tienen los tipos de datos siguientes:
SQL JAVA
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:
11
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
Clase Alumnos: aquí hemos establecidos los atributos y métodos a utilizar en esta
aplicación:
12
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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.
13
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
Clase Conexión.
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.
14
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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.
15
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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:
16
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
17
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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:
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:
18
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
19
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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()});
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.
20
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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:
21
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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.
22
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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”:
23
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
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,
Esto seria todo hasta el respecto de la importación de Ms Sql Server hacia My Sql.
24
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
25
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
Luego OK a esta ventana, y ahora si podemos correr nuestra aplicación con las
modificaciones hechas:
26
Conectividad de Bases de Datos con Java.
Por: Aleksandr Paúl Quito Pérez.
27