conexión desde una aplicación en java a un bd en mysql

15
“AÑO DE LA CONSOLIDACIÓN DEL MAR DE GRAU” ASIGNATURA: Tecnología de la Programación II TEMA: Conexión desde una aplicación en Java a una BD en MySQL. DOCENTE: Vidal melgarejo, Zoraida Yanet ESCUELA ACADEMICA PROFESIONAL: Ingeniería de Sistemas INTEGRANTES: Caldas Domínguez, Roque. Fernando Vargas, Luis. Medina Febre, Héctor. Barraza Canchán, Ingelshin. Pauca Castillo, Elvis. CICLO: V

Upload: roque-caldas-dominguez

Post on 12-Apr-2017

114 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: Conexión desde una aplicación en java a un bd en mysql

“AÑO DE LA CONSOLIDACIÓN DEL MAR DE GRAU”

ASIGNATURA:

Tecnología de la Programación II

TEMA:

Conexión desde una aplicación en Java a una BD en MySQL.

DOCENTE:

Vidal melgarejo, Zoraida Yanet

ESCUELA ACADEMICA PROFESIONAL:

Ingeniería de Sistemas

INTEGRANTES:

Caldas Domínguez, Roque. Fernando Vargas, Luis. Medina Febre, Héctor. Barraza Canchán, Ingelshin. Pauca Castillo, Elvis.

CICLO: V

TRUJILLO – PERU2016

Page 2: Conexión desde una aplicación en java a un bd en mysql

CONTENIDOI. INTRODUCCIÓN..............................................................................................................1

II. BASE DE DATOS RELACIONALES..............................................................................1

III. SQL (STRUCTURED QUERY LANGUAGE)............................................................................3

A. Recuperar Datos...............................................................................................................3

B. Almacenar Información....................................................................................................4

C. Eliminar Información........................................................................................................4

D. Modificar Información......................................................................................................4

IV. JAVA DATABASE CONECTIVITY(JDBC)..................................................................5

V. INSTALACIÓN DE MYSQL CONNECTOR/J..............................................................................7

VI. PASOS PARA UTILIZAR JDBC EN APLICACIONES JAVA.......................................................7

A. CARGAR EL DRIVER JDBC..................................................................................................8

B. OBTENER LA CONEXIÓN...................................................................................................9

C. CREAR EL COMANDO SQL...............................................................................................10

D. EJECUTAR EL COMANDO SQL.........................................................................................10

E. PROCESAR LOS RESULTADOS..........................................................................................11

F. LIBERAR LOS RECURSOS.................................................................................................11

Page 3: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

I. INTRODUCCIÓN

Una base de datos es una colección organizada de datos. Existen diversas estrategias para organizar datos y facilitar el acceso y la manipulación. Un sistema de administración de bases de datos (DBMS) proporciona los mecanismos para almacenar, organizar, obtener y modificar datos para muchos usuarios. Los sistemas de administración de bases de datos permiten el acceso y almacenamiento de datos sin necesidad de preocuparse por su representación interna. En la actualidad, los sistemas de bases de datos más populares son las bases de datos relacionales, en donde los datos se almacenan sin considerar su estructura física. La mayoría de los sistemas de administración de bases de datos populares incluyen ahora controladores de JDBC. También hay muchos controladores de JDBC de terceros disponibles. En este capítulo presentaremos la tecnología JDBC y la emplearemos para manipular bases de datos de MySQL y Java DB. Las técnicas que demostraremos aquí también pueden usarse para manipular otras bases de datos que tengan controladores de JDBC. Consulte la documentación de su DBMS para determinar si incluye un controlador de JDBC. Incluso si su DBMS no viene con un controlador de JDBC, muchos distribuidores independientes proporcionan estos controladores para una amplia variedad de sistemas DBMS.

II. BASE DE DATOS RELACIONALES

Una base de datos relacional es una representación lógica de datos que permite acceder a éstos sin necesidad de considerar su estructura física. Una base de datos relacional almacena los datos en tablas. En la figura1 se muestra una tabla de ejemplo que podría utilizarse en un sistema de personal. El nombre de la tabla es Empleado, y su principal propósito es almacenar los atributos de un empleado. Las tablas están compuestas de filas, y las filas, de columnas en las que se almacenan los valores. Esta tabla consiste de seis filas. La columna Numero de cada fila en esta tabla es su clave primaria: una columna (o grupo de columnas) en una tabla que tiene un valor único, el cual no puede duplicarse en las demás filas. Esto garantiza que cada fila pueda identificarse por su clave primaria.Algunos buenos ejemplos de columnas con clave primaria son un número de seguro social, un número de identificación de empleado y un número de pieza en un sistema de inventario, ya que se garantiza

pág. 1

Page 4: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

que los valores en cada una de esas columnas serán únicos. Las filas de la figura1 se muestran en orden, con base en la clave primaria.En este caso, las filas se muestran en orden ascendente; también podríamos utilizar el orden descendente.

Figura 1 | Datos de ejemplo de la tabla Empleado.

No se garantiza que las filas en las tablas se almacenen en un orden específico. Como lo demostraremos en un ejemplo más adelante, los programas pueden especificar criterios de ordenamiento al solicitar datos de una base de datos.Cada columna de la tabla representa un atributo de datos distinto. Las filas generalmente son únicas (por clave primaria) dentro de una tabla, pero los valores de columnas específicas pueden duplicarse entre filas.Por ejemplo, tres filas distintas en la columna Departamento de la tabla Empleado contienen el número 413.A menudo los distintos usuarios de una base de datos se interesan en datos diferentes, y en relaciones distintas entre esos datos. La mayoría de los usuarios requieren solamente de ciertos subconjuntos de las filas y columnas.Para obtener estos subconjuntos, utilizamos consultas para especificar cuáles datos se deben seleccionar de una tabla. Utilizamos SQL para definir consultas complejas que seleccionen datos de una tabla. Por ejemplo, podríamos seleccionar datos de la tabla Empleado para crear un resultado que muestre en dónde se ubican los departamentos, y presentar los datos ordenados en forma ascendente, por número de departamento. Este resultado se muestra en la figura2. Hablaremos sobre las consultas de SQL más adelante.

Figura 2 | Resultado de seleccionar distintos datos de Departamento y Ubicación de la tabla Empleado.

pág. 2

Page 5: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

III. SQL (STRUCTURED QUERY LANGUAGE)

Es un lenguaje declarativo de BASE DE DATOS RELACIONALES que permite especificar diversos tipos de operaciones en ella.Ejemplo: Tenemos un registro en una base de datos, en la base de datos existen tres tablas relacionadas: Profesor, Asignatura y Curso. Se sabe que un profesor puede tener varios cursos, pero un curso no puede tener varios profesores también que un profesor pertenece a un departamento, pero un departamento puede tener varios profesores miembros. El diagrama del presente ejemplo sería el siguiente:

Figura 3 | diagrama de base de datos

A. Recuperar DatosLa recuperación de los datos contenidos en las tablas lo realizamos a través de la consulta SELECT que extrae información de la DB. Tomando el ejemplo anterior realizaremos una consulta:

Figura 4 | recuperación de datos de la tabla Profesor

B. Almacenar Información

pág. 3

Page 6: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

El almacenamiento o la inserción de datos lo realizamos a través de la consulta INSERT, la cual insertará datos a la tabla.Tomando el ejemplo anterior realizaremos una consulta:

Figura 5 | almacenar información en la tabla Departamento

C. Eliminar InformaciónCuando queremos eliminar información de una tabla o varias tablas relacionadas utilizamos la sentencia DELETE la cual eliminará la información si se cumple con los requerimientos que necesite para ser eliminada, esta información no se podrá recuperar es por ello que es poco frecuente que se eliminen datos, lo más probable es que solo se actualicen. Tomando el ejemplo anterior realizaremos una consulta:

Figura 6 | eliminar registros de la tabla Curso

D. Modificar InformaciónComúnmente existe información que necesita ser actualizada en ciertos periodos o en ciertas operaciones es en donde utilizamos la instrucción de SQL llamada UODATE que combinada con SET y WHERE modifican y/o actualizan de manera correcta la información de una tabla o varias tablas relacionadas entre sí.Tomando el ejemplo anterior realizaremos una consulta:

Figura 7 | modificar información de la tabla Profesor

IV. JAVA DATABASE CONECTIVITY(JDBC)

JDBC es Acrónimo de Java DataBase Conectivity es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, independientemente del sistema

pág. 4

Page 7: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice.Java Database Connectivity (JDBC) es una interface de acceso a bases de datos estándar SQL que proporciona un acceso uniforme a una gran variedad de bases de datos relacionales. JDBC también proporciona una base común para la construcción de herramientas y utilidades de alto nivel. El paquete actual de JDK incluye JDBC y el puente JDBC-ODBC. Estos paquetes son para su uso con JDK 1.0Drivers JDBC Para usar JDBC con un sistema gestor de base de datos en particular, es necesario disponer del driver JDBC apropiado que haga de intermediario entre ésta y JDBC. Dependiendo de varios factores, este driver puede estar escrito en Java puro, o ser una mezcla de Java y métodos nativos JNI (Java Native Interface).

Usando JDBC es fácil enviar sentencias SQL virtualmente a cualquier sistema de base de datos. En otras palabras, con el API JDBC, no es necesario escribir un programa que acceda a una base de datos Sybase, otro para acceder a Oracle y otro para acceder a Informix. Un único programa escrito usando el API JDBC y el programa será capaz de enviar sentencias SQL a la base de datos apropiada. Y, con una aplicación escrita en el lenguaje de programación Java, tampoco es necesario escribir diferentes aplicaciones para ejecutar en diferentes plataformas. La combinación de Java y JDBC permite al programador escribir una sola vez y ejecutarlo en cualquier entorno.Java, siendo robusto, seguro, fácil de usar, fácil de entender, y descargable automáticamente desde la red, es un lenguaje base excelente para aplicaciones de base de datos. 4 JDBC expande las posibilidades de Java. Por ejemplo, con Java y JDBC API, es posible publicar una página web que contenga un applet que usa información obtenida de una base de datos remota. O una empresa puede usar JDBC para conectar a todos sus empleados (incluso si usan un conglomerado de máquinas Windows, Macintosh y UNIX) a una base de datos interna vía intranet. Con cada vez más y más programadores desarrollando en lenguaje Java, la necesidad de acceso fácil a base de datos desde Java continúa creciendo.Simplemente JDBC hace posible estas tres cosas:

• Establece una conexión con la base de datos. • Envía sentencias SQL. • Procesa los resultados.

El siguiente fragmento de código nos muestra un ejemplo básico de estas tres cosas:

pág. 5

Page 8: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

JDBC API Como se mencionó anteriormente JDBC es una API (Aplication Programming Interface) que encontramos en el paquete de java: java.sql, el cual contiene algunos objetos y métodos como: DriverManager, Connection, ResultSet, DatabaseMetaData, ResultSetMetaData, PreparedStatement, CallableStatement, etc.

El API JDBC se presenta como una colección de interfaces Java y métodos de gestión de manejadores de conexión hacia cada modelo específico de base de datos. Un manejador de conexiones hacia un modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los métodos de registro para declarar los tipos de

localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una conexión; para ello provee el localizador a la base de datos y los parámetros de conexión específicos. A partir de allí puede realizar cualquier tipo de tarea con la base de datos a la que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas, ejecución de procedimientos almacenados en la base de datos, etc.

V. INSTALACIÓN DE MYSQL CONNECTOR/J

Para usar MySQL con JDBC, también necesita instalar MySQL Connector/J (la J representa a Java): un controlador de JDBC que permite a los programas usar JDBC para interactuar con MySQL. Para instalar MySql Connector/j

1. Descargar el archivo MySql Connector/J de dev.mysql.com /downloads /connector/j/

2. Extraer su contenido y copiar el archivo mysql-connector-java-5.1.3.38-bin.jar en el la carpata donde se encuentra tu proyecto de java.

pág. 6

Connection con = DriverManager.getConnection ( "jdbc:odbc:wombat", "login", "password"); Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");

while (rs.next()) { int x = rs.getInt("a");

String s = rs.getString("b");

float f = rs.getFloat("c");

}

Page 9: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

OBSERVACIÓN:La mayoría de los distribuidores de base de datos proporcionan sus propios controladores de base de datos JDBC, y muchas distribuidoras independientes proporcionan también controladores JDBC.

VI. PASOS PARA UTILIZAR JDBC EN APLICACIONES JAVA

Figura 8 | pasos para utilizar el JDBC en una aplicación java

A. CARGAR EL DRIVER JDBC

Para usar JDBC con un sistema gestor de base de datos en particular, es necesario disponer del driver JDBC apropiado que haga de intermediario entre ésta y JDBC. Dependiendo de varios factores, este driver puede estar escrito en Java puro, o ser una mezcla de Java y métodos nativos JNI (Java Native Interface).

Para conectarnos a una base de datos a través de JDBC desde una aplicación java, lo primero que necesitamos es cargar el driver.

pág. 7

Page 10: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

Figura 9 | sintaxis para cargar el driver

En nuestro ejemplo utilizaremos el driver nativo de MySQLConector/J para acceder a MySQL. Por lo tanto para cargar el driver tendríamos que escribir en nuestro código Java:

Figura 10 | cargar el driver de MYSQL

Se utiliza el método static forName de la clase Class para cargar la clase para el controlador de base de datos. Esta líne lanza una excepción del tipo java.lang.ClassNotFoundException si el cargador de clases no puede localizar la clase del del controlador. Para evitar esta excepción, necesitamos incluir el archivo mysql-connector-java-5.1.3.38-bin.jar en la ruta de clases del programa a la hora de ejecutarlo.Llamado a Class.forName la aplicación java carga el driver JDBC y entonces ya nos podemos conectar con la base de datos invocando al método DriverManeger.getConnection.

B. OBTENER LA CONEXIÓN

Para conectarnos a la basa de datos una vez cargado el driver, utilizaremos el método getConnection que a su vez define una URL que indicará la ubicación de la base de datos:

pág. 8

Page 11: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

Figura 11 | sintaxis para obtener la conexión a base de datos

Para obtener la conexión con la base de datos de MySQL:

Figura 12 | obtener conexión a una base de datos en MYSQL

Se crea un objeto Connection(paquete java.sql), el cual es referenciado mediante una conexión. Un objeto que implemente la interfaz Connection administra la conexión entre el programa java y la base de datos. Los objetos Connection permiten a los programas crear instrucciones de SQL para manipular base de datos. El programa inicializa a conexión con el resultado de una llamada al método static getConnection de la clase DriverManager(paquete java.sql), el cual trata de conectar a la base de datos especificado mediante su URL. El método getConnection recibe tres argumentos: un objeto String que especifica la URL de la base de datos, un objeto String que especifica el nombre de usuraio y un objeto String que especifica la contraseña. El URL jdbc:mysql://localhost/escuela especifica el protocolo para la comunicación (jdbc), el subprotocolo para la comunicación(mysql) y la ubicación de la base de datos (//localhost/escuela, en donde localhost es el host que ejecuta elservidor MySQL y escuela es el nombre de la base de datos). El subprotocolo mysql indica que el programa utiliza un subprotocolo específico de MySQL para conectarse a la base de datos MySQL. Si el objeto DriverManager no se puede conectar a la base de datos, el método getConnection lanza una excepción SQLException (paquete java.sql).

pág. 9

Page 12: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

C. CREAR EL COMANDO SQL.Ya que hemos establecido una conexión con la base de datos usando el método getConnection de DriverManager ahora podemos crear sentencias SQL utilizando la interface Statemente que provee métodos para realizar esas tarea. Entonces tenemos que escribir en nuestro código java:

Figura 13 | crear comando SQL.

Se invoca el método createStatement de Connection para obtener un objeto que implemente a la interfaz Statemente(paquete java.sql). El programa utiliza al objeto Statemente para enviar instrucciones se SQL a la base de datos.Ahora para que podemos utilizar las sentencias UPDATE, INSERT, DELETE, SELECT tenemos que utilizar los métodos:

D. EJECUTAR EL COMANDO SQL

Figura 13 | métodos para ejecutar el comando SQL.

Ahora para que podemos utilizar las sentencias UPDATE, INSERT, DELETE, SELECT tenemos que utilizar los métodos:

Figura 14 | ejecutar comando SQL

Se utiliza el método executeQuery del objeto Statement para enviar una consulta que seleccione toda la información sobre los autores en la tabla autores. Este método devuelve un objeto que implementa la interfaz ResultSet, y contiene el resultado de esta consulta.

pág. 10

Page 13: Conexión desde una aplicación en java a un bd en mysql

UNIVERSIDAD NACIONAL DE TRUJILLO

E. PROCESAR LOS RESULTADOS

Figura 15 | procesar los resultados

F. LIBERAR LOS RECURSOS

Figura 15 | liberar los recursos

pág. 11