Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Documentos relacionados
Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Universidad Don Bosco. Materia: Programación Orientada a Objetos Contenido: Modificadores de Acceso y JDBC

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

Acceso a BD desde Java. JDBC

10. JDBC. 10. JDBC Introducción. java.sql

JDBC: Java DataBase Conectivity

Federico Peinado

Practica 11: Conexión de Java con Bases de datos Access

Objetivos y Temario CURSO MySQL 5

NORMAS PARA LA ENTREGA DE LOS LABORATORIOS

JDBC: EL PUENTE ENTRE JAVA Y LAS BASES DE DATOS. En este articulo se expone la API JDBC (Java DataBase Connetivity), la cual permite el

Programación Orientada a Objetos II. La Plataforma JDBC

Bases de datos y JDBC

Guía práctica de introducción básica a JDBC

JDBC. Francisco Javier Solans Benedí Software Developper

GESTORES GESTORES DE BASES DE DATOS

Capa de Gestión de Datos. Persistencia Bases de Datos - JDBC

Notas técnicas de JAVA - Tip en detalle Nro. 2

Java con Bases de Datos

Copyright. Para cualquier duda, consulta, insulto o tirón de orejas sobre este tutorial dirigirse a abraham@javahispano.org. El ABC de JDBC 1 de 36

Diseño de la capa de datos. Acceso a datos con JDBC

MySQL con Java en MS Windows

JDBC Julio Introducción JDBC Arquitecturas típicas con JDBC... 3

Acceso a BDs en Java: JDBC

Bases de Datos Introducción a la Conectividad de

JDBC. Aplicaciones Distribuidas

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

JDBC. Una mini-introducci. introducción

Desarrollo de Software con

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

JAVA 7 Los fundamentos del lenguaje Java

El Sistema Gestor de Base de Datos (DBMS)

Acceso a bases de datos MySQL con PHP

Bases de Datos usando Java : JDBC. Ing. César Julio Bustacara Medina

Referencia SQL en la versión de HUGOSQL White Paper por: HUGOSQL 2012

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Java y MySQL. Ciclo de ejecución

PROYECTO 2 Parte 1 BASES DE DATOS. Curso (2 Semestre) Grupos 4F2M y 4F1M-1 (aula 5102) CONSULTAS REMOTAS EN JAVA A UNA BASE DE DATOS

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

8. JDBC: acceso a bases de datos

JDBC. Curso 04/05. Tema 8 JDBC. Departament d Informàtica. Universitat de València. 1. Introducción Arquitecturas típicas...

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

TEMA 1 ACCESO A BASE DE DATOS 1. QUE ES UN JDBC ODBC?

Establecer una conexión con una base de datos o acceder a cualquier fuente de datos tabular Enviar enunciados SQL. Procesar los resultados

Tutorial 3. Conexión a Bases de Datos con NetBeans 5.0

Ciclo Formativo de Grado Superior de Administración de Sistemas Informáticos en red

TEMA 11 INDICE [PROGRAMACIÓN]

Práctica 2 ACCESO A BASES DE DATOS CON JDBC. 1. Creación de una base de datos en MySQL...1

Base de Datos Oracle: desarrollo de aplicaciones

Manejo de Bases de Datos Mysql en Lenguaje C

SQL (Structured Query Language)

Laboratorios de BASES DE DATOS. (I.T. Informática)

ADMINISTRACIÓN DE BASE DE DATOS

UNIDAD 2: Bases de Datos en Visual Basic

Introducción a los Sistemas de Gestión de Bases de Datos

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

Introducción al SQL de InterBase: DDL y DML

JDBC. Cada celda de la tabla debe tener solamente un valor (nunca un conjunto de valores). (1NF)

Conceptos Avanzados de Bases de datos

Taller de Programación II J2EE

Bases de Datos: Structured Query Language (SQL)

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

ÍNDICE PRIMERA PARTE... 17

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente

APÉNDICE SQL (Structures Query Language)

Introducción a JDBC - Base de datos con Java

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DML. Ing. Alfonso Vicente, PMP

ÍNDICE INTRODUCCIÓN...17

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

2.1 La interfaz de JDBC para el programador de aplicaciones La interfaz JDBC para los controladores JDBC... 5

%& %)& '$!%*+ $, %%%&$ %%

JDBC - Acceso a Bases de Datos

Registro y Comunicación Automatizada a Bases de Datos

Gestión de la Información Práctica 1

Base de datos relacional

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

Programación y Acceso a BD con SQL

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

1. INTRODUCCION Qué es JDBC? Qué hace JDBC? JDBC es un API de bajo nivel y una base para API s de alto nivel

Tema 33. El lenguaje SQL

Modulo I: Introducción Gestores de Bases De Datos

Jornadas sobre Gnu/Linex: Uso de Software Libre en las Administraciones públicas. Sonia Pizarro Redondo

Agente de Comunicaciones Manual de Usuario

Diseña y Administra Bases de Datos Guía de Estudio

Acceso a bases de datos con JDBC

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

En este curso se presenta un análisis profundo de la base de datos MySQL para los sistemas operativos Windows y Linux.

040 - IFC04CM16. ACCESO A DATOS

Software de Comunicaciones (2) Manual de Usuario Consola

SQL Los fundamentos del lenguaje

Práctica 4: Estudio del SGBD Oracle 10 Gestión de Transacciones

T13 - LENGUAJES DE INTERROGACIÓN DE BASES DE DATOS.

Construcción de la base de datos en Oracle

UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA DEPARTAMENTO DE COMPUTACIÓN DESARROLLO DE SOFTWARE PARA CONTROL DE INVENTARIO

[CASI v.0110] Pág. 1

TUTORIAL CONEXIÓN SQLSERVER CON JAVA DESDE ECLIPSE

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DDL. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

Transcripción:

Base de Datos JDBC Unidad: 1 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Indice Instalación de JDBC. Tipos de controladores. Conexión con la base de datos. Definir y ejecutar sentencias SQL. Solicitud de información. Obtención de los resultados. Actualización de filas. Inserción y actualización de datos. Sentencias preparadas. Navegando por los conjuntos de resultados. Transacciones. Autocommit. Commit y Rollback. JDBC Laboratorio de Programacion 1

Qué es JDBC? (1) JDBC es el acrónimo de Java Database Connectivity, un API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java independientemente del sistema de operación 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 [Wikipedia]. Por tanto JDBC permite: Conectar con una fuente de datos, normalmente una base de datos. Enviar consultas y actualizaciones a la base de datos. Procesar los resultados obtenidos de la base de datos en respuesta a una consulta JDBC Laboratorio de Programacion 2

Qué es JDBC? (2) Podemos trabajar con diferentes sistemas de gestión de bases de datos: ORACLE, ACCESS, MySQL, etc Sólo necesitamos una librería de conexión a esa base de datos. ODBC es el equivalente en Microsoft. Para poder conectarse a la BD y lanzar queries, es preciso tener un driver adecuado para ello Un driver suele ser un fichero.jar que contiene una implementación de todos los interfaces del API de JDBC Nuestro código nunca depende del driver, dado que siempre trabaja contra los paquetes java.sql y javax.sql JDBC Laboratorio de Programacion 3

Driver JDBC JDBC Laboratorio de Programacion 4

Qué es JDBC? (3) La arquitectura JDBC: JDBC Laboratorio de Programacion 5

Enlaces Sitio de JDBC de Sun: http://java.sun.com/products/jdbc/ Tutorial JDBC: http://java.sun.com/docs/books/tutori al/jdbc/ Drivers JDBC: http://industry.java.sun.com/products/ jdbc/drivers JDBC Laboratorio de Programacion 6

Tipo de drivers (1) Puente JDBC/ODBC Facilidad configuración Más lento JDBC Laboratorio de Programacion 7

Tipo de drivers (2) Java Binario No hay capa ODBC Necesario Driver del fabricante en el cliente Otros: 100% JAVA Protocolo Nativo 100% JAVA Protocolo Independiente JDBC Laboratorio de Programacion 8

Independencia de la BD Idealmente, si nuestra aplicación cambia de BD, no necesitamos cambiar el código; simplemente, necesitamos otro driver Sin embargo, desafortunadamente las BDs relacionales usan distintos dialectos de SQL (a pesar de que en teoría es un estándar) Tipos de datos: varían mucho según la BD Generación de identificadores: secuencias, autonumerados, etc. JDBC Laboratorio de Programacion 9

Comunicación con la BD JDBC Laboratorio de Programacion 10

Qué necesitamos para trabajar con JDBC Tener instalado Java y el driver JDBC en nuestra máquina. Esto se soluciona instalando una máquina virtual: Descargar el último JDK de Sun e instalar, incluye los paquetes java.sql y javax.sql. Instalar el Sistema Gestor de Bases de Datos (MySQL): Descargar e instalar MySQL http://dev.mysql.com/downloads/mysql/5.0.html Descargar e instalar herramientas gráficas para MySQL http://dev.mysql.com/downloads/gui-tools/5.0.html En función del Sistema Gestor de Bases de Datos, instalar el driver apropiado (MySQL): Descargar el driver JDBC para MySQL. http://dev.mysql.com/downloads/connector/j/5.0.html JDBC Laboratorio de Programacion 11

Configuración Eclipse JDBC Instalar el driver Bajar el driver de MySQL JDBC driver desde la pagina web Descomprimir mysql-connector-xxx.jar Añadir mysql-connector-xxx.jar al proyecto de Eclipse Project Properties Java Build Path Libraries Add External JARs JDBC Laboratorio de Programacion 12

Pasos de JDBC Siete pasos básicos en el uso de JDBC 1.- Cargar el controlador (driver) 2.- Definir el URL de la Conexión 3.- Establecer la conexión 4.- Crear un objeto Statement 5.- Ejecutar una consulta (query) 6.- Procesar los resultados 7.- Cerrar la conexión JDBC Laboratorio de Programacion 13

Cargar del driver Para poder acceder a la base de datos En primer lugar, cargar el driver de conexión: Facilitado por el vendedor O también JDBC Laboratorio de Programacion 14

Conectar el driver al SGBD Para establecer una conexión: Connection con = DriverManager.getConnection(url, nombreusuario,password); url -> ruta de acceso a los datos. nombreusuario -> Usuario para acceder a la base de datos. password -> Clave de acceso. Ejemplo: JDBC Laboratorio de Programacion 15

Crear la base de datos A partir de esta conexión creada y abierta podremos ejecutar sentencias con JDBC que son traducidas en sentencias SQL y ejecutadas en el SGBD. Definimos una tabla COFFEES JDBC Laboratorio de Programacion 16

Creación de sentencias SQL Tabla COFFEES: CREATE TABLE COFFEES (COF_NAME VARCHAR(32) NOT NULL, SUP_ID INTEGER, PRICE FLOAT, SALES INTEGER, TOTAL INTEGER, PRIMARY KEY(COF_NAME) ) Para crear y ejecutar estas sentencias necesitamos: Un objeto de tipo Statement. JDBC Laboratorio de Programacion 17

Creación de sentencias SQL SentenciaSQL OJO: No terminar la sentencia con el carácter de terminación del SGBD determinado (por ejemplo ;). El driver se encarga de poner ese carácter. Así nuestro código es independiente del sistema de bd utilizado. Los tipos utilizados son tipos genéricos SQL y están definidos en java.sql.types JDBC Laboratorio de Programacion 18

Creación de sentencias SQL Utilización de executeupdate. Utilizamos este método con sentencias SQL que modifiquen la definición de la base de datos (sentencias DDL = Data Definition language) o los datos (DML = Data Manipulation Language diferentes de SELECT): Creación de tablas. Eliminación de tablas. Actualización de tablas. Inserción, borrado y actualización de datos. Para sentencias que no supongan una modificación de los datos: executequery. SELECT. JDBC Laboratorio de Programacion 19

Creación de sentencias SQL Añadir datos a una tabla: Se utiliza el objeto Statement con su método executeupdate(sentenciasql). La tabla COFFEES quedaría: JDBC Laboratorio de Programacion 20

Creación de sentencias SQL Recuperación de datos de las tablas. Por ejemplo: SELECT COF_NAME, PRICE FROM COFFEES Lo primero que necesitamos es ejecutar la sentencia: stm.executequery("select COF_NAME, PRICE FROM COFFEES"); Esta sentencia devuelve un objeto de tipo ResultSet: ResultSet set = stm.executequery("select COF_NAME "); Este objeto tiene el conjunto resultante de la consulta. Paramovernos por las filas de ese conjunto resultante, utilizamos el concepto de cursor. JDBC Laboratorio de Programacion 21

Creación de sentencias SQL Para mover el cursor a lo largo de los registros, utilizamos el método next del objeto ResultSet. La primera vez que invocamos este método, el cursor se sitúa en la primera fila o primer registro, sucesivas llamadas a dicho método hacen avanzar el cursor. Veremos después que a partir de JDBC 2.0 podemos mover el cursor hacia delante, hacia atrás, a una fila determinada, a una relativa a la posición actual, JDBC Laboratorio de Programacion 22

Creación de sentencias SQL Para acceder a cada uno de los campos de cada registro utilizamos métodos del tipo: getxxxx(nombrecampo) del objeto ResultSet. Por ejemplo, para acceder al campo COF_NAME, como es de tipo string, utilizamos rs.getstring( COF_NAME ). Para acceder al precio -> rs.getfloat ( PRICE ); Por tanto para recorrer un conjunto de datos hay 2 formas: Observar en el API de JAVA los diferentes métodos que la clase ResultSet facilita para obtener datos de un registro. JDBC Laboratorio de Programacion 23

Equivalencia de tipos JDBC Laboratorio de Programacion 24

Actualización de tablas Si queremos seguir modificando datos, por ejemplo actualizando tablas: String updatestring = "UPDATE COFFEES " + "SET SALES = 75 + "WHERE COF_NAME LIKE 'Colombian%' "; stm.executeupdate(updatestring); En este caso, el método devuelve un valor entero que indica el número de filas actualizadas JDBC Laboratorio de Programacion 25

Ejemplo import java.sql.*; public class EjemploJDBC { public static void main(string args[]){ try { //Cargar driver especifico de base de datos Class.forName("com.mysql.jdbc.Driver"); //Crear el objeto de conexion a la base de datos Connection conexión= DriverManager.getConnection("jdbc:mysql:Ejemplo"); JDBC Laboratorio de Programacion 26

Ejemplo } //Crear objeto Statement para realizar queries a la base de datos Statement instruccion = conexion.createstatement(); //Un objeto ResultSet, almacena los datos de resultados de una consulta ResultSet tabla = instruccion.executequery("select cod, nombre FROM datos"); System.out.println("Codigo\tNombre"); while(tabla.next()) System.out.println(tabla.getInt(1)+"\t"+tabla.getString(2)); conexion.close(); } catch(classnotfoundexception e){ System.out.println(e); } catch(sqlexception e){ System.out.println(e); } catch(exception e){ System.out.println(e); } } JDBC Laboratorio de Programacion 27

Correspondencia entre tipos Java y SQL estándar JDBC Laboratorio de Programacion 28

Conceptos SQL (1) SQL :lenguaje estándar para comunicarse con cualquier DBMS. Se divide en dos partes: DDL: permite definir tablas en la Base de Datos DML: permite manipular los datos almacenados JDBC Laboratorio de Programacion 29

Conceptos SQL (2) Consulta SELECT sobre una tabla: SELECT Código,Título,Precio FROM Libros WHERE Precio > 35 ORDER BY Código ASC Consulta SELECT que regresa todas las columnas y filas: SELECT * FROM Libros JDBC Laboratorio de Programacion 30

Conceptos SQL (3) Agregar registros: ( sólo uno) INSERT INTO Libros (Código,Descripción,Precio) VALUES ( WARP, War and Peace, 14.95 ) Agregar registros múltiples: INSERT INTO Archivo SELECT * FROM Pedidos WHERE Deuda=0 JDBC Laboratorio de Programacion 31

Concepto SQL (4) Actualizar registros: UPDATE Libros SET Título= War and Peace, Precio= 14.95 WHERE Código= WARP Actualizar registros múltiples: UPDATE Libros SET Precio= 36.95 WHERE Precio= 36.50 JDBC Laboratorio de Programacion 32

Consultas JDBC Laboratorio de Programacion 33

Próxima clase Consultas y actualizaciones mediante sentencias preparada (PreparedStatement) Manejo de transacciones Ejercitación JDBC Laboratorio de Programacion 34