Tecnologias Web y SGBD - CONEXIÓN ENTRE JAVA Y MySQL (JDBC) PDF

Title Tecnologias Web y SGBD - CONEXIÓN ENTRE JAVA Y MySQL (JDBC)
Author Lenin Sanchez
Course Base de datos Avanzada
Institution Universidad Técnica Particular de Loja
Pages 10
File Size 406.3 KB
File Type PDF
Total Downloads 69
Total Views 150

Summary

CONEXIÓN ENTRE JAVA Y MySQL (JDBC)...


Description

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

INGENIERÍA EN SISTEMAS INFORMÁTICOS Y COMPUTACIÓN BASES DE DATOS AVANZADAS CONEXIÓN ENTRE JAVA Y MySQL (JDBC) NOMBRE: Lenin Sánchez

Tabla de contenidos Introducción

2

Características de la tecnología

3

Aplicaciones y uso

4

Ventajas y desventajas Ventajas Desventajas

5 5 5

Ejemplo

6

Conclusiones y recomendaciones

9

Bibliografía

9

Introducción Se define a una base de datos (BD) como una colección organizada de datos (Deitel y Deitel, 2004) con el fin de facilitar su acceso y su manipulación, por otro lado, los sistemas de gestión de base de datos (SGBD) proporcionan los mecanismos para lograr los objetivos de las BD. El lenguaje utilizado para realizar consultas es el SQL, Structured Query Language, el cual ha sido establecido como estándar internacional y su uso se da en las bases de datos de tipo relacional. Por otro lado, JAVA es un potente y versátil lenguaje de programación que puede trabajar en todo tipo de entornos, desde servidores de aplicaciones hasta clientes Web. Independientemente del tipo de aplicación que se desarrolle y del tipo de máquina en la que se ejecute el código, su aplicación seguramente tendrá que acceder a datos almacenados en algún tipo de base de datos. Las bases de datos relacionales son la elección en la mayor parte de las empresas, y han evolucionado espectacularmente en los últimos años hasta convertirse en potentes sistemas de gestión de bases de datos, o denominados SGBD por sus siglas. En este tema se pretende mostrar cómo funcionan las bases de datos relacionales, y cómo emplear la interfaz Java Data Base Connectivity (JDBC) para utilizarlas en los programas Java. También se mostrarán las sentencias del lenguaje de manipulación de datos, o DML, de SQL que se utiliza en JAVA, acompañado de algunos ejemplos para su respectivo uso. Adicionalmente se mostrarán cuales son las funciones de Objetos Connection, Statement y ResultSet, donde se mostrarán algunos ejemplos de su uso. Con JDBC no es necesario escribir distintos programas para distintas BD, sino que un único programa sirve para acceder a bases de datos (BD) de distinta naturaleza. Incluso, podemos acceder a más de una BD de distinta fuente (Oracle, Access, MySql, etc.) en la misma aplicación. Se puede definir a JDBC como el puente entre una base de datos y nuestro programa Java. Un ejemplo sencillo puede ser un applet que muestra dinámicamente información contenida en una base de datos. El applet utilizará JDBC para obtener dichos datos

Características de la tecnología Este lenguaje suele implementar unos drivers para acceder a la base de datos, conocida como Java Data Base Connectivity (JDBC) , los cuales son únicos según el tipo de base de datos para facilitar así la compatibilidad. El principal problema de utilizar drivers es que las conexiones se tienen que manejar manualmente, lo que implica un riesgo, además las consultas o scripts que hagamos en nuestro programa deben tener la sintaxis propia de la versión y tipo de la base de datos con la que se esté trabajando. Los programa en JAVA se comunican con las bases de datos y manipulan los datos mediante este API aunque existen también controladores JDBC de terceros. Las funciones principales de este controlador son tres: 1.

Establece una conexión con una base de datos o accede a cualquier fuente de datos tabulados.

2.

Envío de sentencias SQL.

3.

Procesamiento de resultados.

Para entender el funcionamiento de estos controladores se deben definir algunos términos con los que se trabaja. ●

Connection: tipo de objeto encapsulador que establece la conexión con la BD a través de una url de la base donde se especifica el SGBD y el nombre de la base, el login que indica el nombre del usuario, y por último el password de dicho usuario.



Statement: esta clase permite realizar todas las operaciones de consulta, mediante el método executeQuery, e inserción y borrado mediante el método executeUpdate, sobre la base que estamos trabajando.



ResultSet: es un objeto que se obtiene como resultado de un comando Select el cual contiene todos los datos que dicha consulta devuelve. Para poder realizar esta función, este objeto mantiene un cursor apuntando a una fila de datos y mediante el llamado al método next el cursor se mueve a otra fila, dando como resultado un false cuando ya no haya más filas a las que apuntar.

El uso de estos objetos y clases facilita de manera muy significativa la programación, ya que se sigue el mismo modelo para todas las consultas CRUD (Create, Read, Update and Delete), las cuales son las funciones básicas de cualquier base de datos. Para evitar estos problemas se puede trabajar con otras técnicas de programación conocidas como ORM (Object-Relational mapping) , las cuales convierten datos existentes en un lenguaje orientado a objetos, en este caso Java, para utilizarlos en una base de datos

relacional. Uno de los ejemplos más conocidos de este tipo de tecnologías es Hibernate, un framework distribuido como software libre que mapea los atributos de una base de datos relacional para que coincidan con el modelo de objetos que se está realizando en una aplicación. Existen más tecnologías como: ●

iBatis: es un framework de código abierto basado en capas, que se ocupa de la capa de Persistencia (se sitúa entre la lógica del negocio y la capa de la BD).



JBoss Seam: es un framework desarrollado por Jboss que combina 2 frameworks (Enterprise Java Beans EJB3 y Java Server Faces JSF), Esta herramienta cuenta con una “herramienta de línea de comandos” denominada seam-gem

incluida

con el

framework,

con esta

es

posible

generar

automáticamente una aplicación web de altas, bajas, cambios y actualizaciones (CRUD) a partir de una base de datos existente. ●

Java Persistence API: más conocida como JPA, es un framework del lenguaje de alto nivel Java que maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard y Enterprise.

Aplicaciones y uso ●

El JDBC nos permite establecer una conexión con una base de datos.



JDBC nos posibilita enviar sentencias SQL.



JDBC nos permite procesar los resultados de las consultas.



gracias a estos “puentes” podremos acceder y procesar datos guardados en las bases de datos.



Podremos recibir y actualizar los resultados de un “Query”.



Inventarios.



Aplicación para gestionar la base de datos de estudiantes.



Sistemas de facturación.



Aplicaciones Cliente-Servidor.



Aplicación para gestionar usuarios y clientes de una compañía de seguros médicos.

Ventajas y desventajas Ventajas Con el empleo de JDBC, la arquitectura de negocio no se ve estancada en una sola arquitectura, es decir, pueden usar cualquier base de datos ya instalada. Otro factor es el económico, no requiere ninguna inversión extra el usar esta tecnología ya que la combinación entre JAVA y su API se hace solo con la importación de una librería. El uso de este complemento es sencillo y de fácil aprendizaje ya que incorpora las tareas complejas del acceso a los datos, dejando solo el trabajo de realizar la conexión y escribir las sentencias SQL. Por otro lado, con el uso de modelos ORM, encontramos que es más fácil y rápido de usar(al realizar operaciones CRUD), también nos brinda gran seguridad de la capa de acceso a datos contra ataques.Si no usáramos ORM el programador debería conocer el lenguaje para cada base de datos, y peor aún si en un futuro se requiere migrar la aplicación, se deberá reescribir gran número de consultas.

Desventajas La desventaja principal es la diferencia evidente entre el modelo de objetos con el que trabaja el lenguaje Java y el modelo relacional de cualquier base de datos relacional existente. El modelado orientado a objetos tiene relación con la lógica del negocio, en cambio el modelo relacional está enfocado en cómo se organiza la información. Los JDBC implican que se construya sentencias bastante largas para realizar sentencias de insert, select, update o delete. Otro problema existente en las sentencias es el conocido como SQL Injection, esto consiste en la inserción de código SQL con el fin de alterar el funcionamiento de una base de datos y ejecutar así alguna sentencia maliciosa, para solucionar este problema se hace uso de la clase Statement y que así se determine una sentencia ya preparada. Como desventaja del ORM encontramos que en entornos con un gran número de capas, al añadir más capas aún puede disminuir el rendimiento. Y la principal desventaja es que nos tocaría aprender el nuevo lenguaje ORM.

Ejemplo Para hacer un ejemplo del funcionamiento de JAVA y un SGBD se escogió MySQL, un sistema de base de datos relacionales. En este caso vamos a trabajar las sentencias CRUD sobre una tabla para hacerlo más entendible, esta tabla se llama Vehículos, la cual tiene atributos relacionados con ella como placa, marca, modelo, cilindraje, pasajeros, cédula, color, tipo, chasis y motor. El primer paso es añadir la librería para implementar el JDBC, en este caso es la librería MySQL JBDC Driver, ya incluida por defecto en la IDE de Java NetBeans.

Fig 1. Inclusión de librería.

Posterior a esto se crea la base de datos en MySQL con la tabla que se indicó anteriormente para hacer lo mismo en Java, pero como objeto, dicho objeto tendrá los mismo atributos para no generar problemas. El tipo de programación se hará mediante un modelo de capas donde se separe la lógica del negocio, los objetos o clases, las interfaces y el manejo de sentencias SQL. Éste último será el más importante en nuestro ejemplo. Primeramente se crea la conexión entre Java y MySQL, para ello se utiliza el objeto Connection indicando el nombre de la base, el usuario y su clave.

Fig 2. Clase para crear la conexión.

Una vez realizada la conexión, Java ya puede interactuar con nuestra base de datos y realizar cambios en la misma. La primera sentencia que podemos ejecutar es el Select, empezando con crear un objeto vacío que se llenará con los datos que la consulta nos devuelve, en este caso filtramos la búsqueda con un Where. El ResultSet será el objeto donde se guardan los datos consultados para que el objeto sea establecido con estos datos.

Fig 3. Código para realizar un Select.

La siguiente consulta a ejecutarse es el Insert, el cual sigue el mismo mecanismo pero en vez de llamar a los métodos de establecer, se llama a los de obtener, ya que insertamos un objeto cargado con todos sus atributos y que así mismo ingrese en la base de datos. La clase Statement nos permite ejecutar la sentencia que ha sido declarada como un String para facilitar su entendimiento.

Fig 4. Código para realizar una inserción.

La siguiente sentencia que se implementará es el Delete, la cual viene determinada con una condición, en este caso es el número de placa del vehículo. Se sigue el mismo mecanismo utilizado en las anteriores sentencias, es decir, el uso de la clase Statement.

Fig 5. Código para ejecutar un Delete.

La última sentencia a implementarse en este ejemplo es Update, siguiendo nuevamente el formato de las anteriores sentencias pero implementando en el método dos String que recibirá para poder hacer la actualización de datos.

Fig 6. Código de ejecución para Update.

Cómo se puede observar, las últimas sentencias devuelve una variable de tipo entero ya que al llamar al método executeQuery éste nos devuelve un 0 o un 1 dependiendo de si la ejecución de la sentencia fue exitosa o no. En las interfaces únicamente se crean los objetos y van pasando a la capa de lógica y posteriormente a la capa que maneja las sentencias. Todos estos resultados pueden ser evidenciados en nuestro SGBD, en nuestro caso MySQL.

Conclusiones y recomendaciones ●

Utilizar JDBC implica construir y ejecutar repetidamente sentencias SELECT, INSERT, UPDATE y DELETE.



Con el empleo de JDBC, la arquitectura de negocio no se ve estancada en una sola arquitectura, es decir, pueden usar cualquier base de datos ya instalada.



Los modelos ORM nos brindan gran seguridad de la capa de acceso a datos contra ataques.



Recomendamos usar esta conexión en trabajos simples ya que es de gran eficacia en bases de datos que no tengan demasiados datos.



El JDBC es un método práctico para realizar la conexión, simple de utilizar.

Bibliografía 1.

Deitel, H. M., & Deitel, P. J. (2003). Como programar en Java. Pearson Educación.

2.

Melton, J., & Eisenberg, A. (2002). SQL y Java: guía para SQLJ, JDBC y tecnologías relacionadas. Ra-Ma.

3.

Framiñán, J. M., & León, J. M. (1997). Gestión de bases de datos en internet: JDBC.

4.

Arias, J. (2019). Acceso a bases de datos desde Java: JDBC. Retrieved from http://www.it.uc3m.es/jaf/aw/teoria/bd-2/bd-2.pdf

5.

Deitel, H., Deitel, P., Vidal Romero Elizondo, A., & Trujano Mendoza, G. (2004). C'mo programar en Java. México: Prentice Hall.

6.

JDBC Overview. (2019). Retrieved from https://www.oracle.com/technetwork/java/overview-141217.html

7.

Regalado, T. (2019). Java con Base de Datos. Retrieved from https://es.slideshare.net/ThaliaRegaladoJuape/java-con-base-de-datos-80200637

8.

Tutorial básico de bases de datos en Java mediante JDBC. (2019). Retrieved from https://www.adictosaltrabajo.com/2011/02/25/tutorial-basico-jdbc/...


Similar Free PDFs