Java y MySQL. Ciclo de ejecución

Documentos relacionados
Java y MySQL. Ciclo de ejecución

Acceso a BDs en Java: JDBC

JDBC. Francisco Javier Solans Benedí Software Developper

Acceso a BD desde Java. JDBC

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

JDBC. Aplicaciones Distribuidas

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

JDBC: Java DataBase Conectivity

JDBC. Una mini-introducci. introducción

Acceso a bases de datos con JDBC

Java con Bases de Datos

Plugin para NetBeans que realiza migración de una base de datos postgresql a couchdb.

Desarrollo de Software con

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

NORMAS PARA LA ENTREGA DE LOS LABORATORIOS

Federico Peinado

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

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

MySQL con Java en MS Windows

Bases de datos y JDBC

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

Bases de Datos Introducción a la Conectividad de

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

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

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

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

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

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

MSSQL Server Java

INTRODUCCIÓN. El objetivo de este manual es la identificación de los procesos técnicos más

USO DEL ENTORNO DE NETBEANS PARA EL ACCESO DE LA BASE DE DATOS Y EL PAQUETE JAVA.SQL

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

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

USO DEL OBJETO JTABLE

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

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

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

Programación Orientada a Objetos II. La Plataforma JDBC

BASES DE DATOS AVANZADAS Transacciones en MYSQL

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

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

Programación y Acceso a BD con SQL

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

Qué es JDBC? Cuatro tipos de drivers JDBC Uso de JDBC

Ing. Mirko Manrique Ronceros

Práctica sobre compartición de instancias remotas.

Objetivos y Temario CURSO MySQL 5

PRÁCTICA Nº 16 CONEXIÓN A UNA BASE DE DATOS, INGRESO Y VISUALIZACIÓN DE REGISTROS

El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat.

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

JAVA 7 Los fundamentos del lenguaje Java

Conectividad con Bases de Datos desde Java (JDBC). Antonio S. Cofiño Marta Zorrilla Universidad de Cantabria. Java

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

Paquete de curso Programación Java SE (Exclusivo Estudiantes y catedráticos)

JSP. MSc. Daniel Alejandro Yucra Sotomayor Pag Web Services. Laboratorio Nro. 11. Web Services con JAX-WS con MySQL. I. Competencia General:

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

CURSORES EN SQL SERVER

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

TEMA 11 INDICE [PROGRAMACIÓN]

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

Manejo de Bases de Datos Mysql en Lenguaje C

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

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

Conexión de Mysql con NetBeans

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

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

JDBC: Conexiones con bases de datos desde Java

ÍNDICE. PRÓLOGO Parte I Parte II Apéndices... 23

TUTORIAL CONEXIÓN SQLSERVER CON JAVA DESDE ECLIPSE

JDBC: Conexiones con bases de datos desde Java

Manual de JSP con MySQL

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

Software de Comunicaciones (2) Manual de Usuario Consola

JDBC - Acceso a Bases de Datos

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

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

USO DEL ENTORNO DE NETBEANS PARA LA CONEXIÓN DE BASE DE DATOS

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

MultiBase. Notas a la versión 3.4. BASE 100, S.A.

Sistemas de Información

Tips de Componentes UI Java Swing con Netbeans

Laboratorio Informix. Stored Procedures Triggers

Principios de Computadoras II

GESTORES GESTORES DE BASES DE DATOS

Ingeniería del Software II. Curso 2003/2004. Enunciado de la práctica del Segundo parcial.

Carlos Alberto Olarte

DOCUMENTACIÓN DE POWER BUILDER 11. CONSULTA DINAMICA Las consultas dinámicas se realizan cuando power builder no soporta una consulta SQL.

APLICACIONES WEB PERL + BASES DE DATOS REQUERIMIENTO RESPUESTA

Número de Práctica: 1 Nombre de la Práctica: Comunicación Cliente Servidor Vía Sockets Java con Sistema Manejador de Bases de Datos

Utilización de Oracle Java Procedures

A continuación se presenta la forma en que se puede conectar PHP con el gestor de bases de datos MySQL.

JDBC 1. JDBC. 2. Bases de Datos. 3. Conectividad JDBC. Acceso de JDBC a Bases de Datos. Modelo de 2 Capas. Modelo de 3 Capas.

II Curso Online JAVA-J2EE

Acceso a bases de datos en Perl

Guías para la práctica (2): Acceso a Salesforce

Transcripción:

Java y MySQL JDBC: Java DataBase Connectivity Cliente Servidor Aplicación Java Driver JDBC MySQL Conexión cliente-servidor MySQL Java Runtime Librerías JDBC El driver implementa las interfaces del paquete JDBC estándar. Base de Datos JVM 0 Ciclo de ejecución Cargar Driver JDBC Establecer conexión a la base de datos Ejecutar sentencia Consulta Armar SQL Crear sentencia Ejecutar Iterar sobre el resultado Actualización Armar SQL Crear sentencia Ejecutar Otra sentencia Cerrar conexión 1 1

Clase DriverManager (Paquete java.sql) DriverManager: clase estática (no requiere instanciación de objetos) que administra los drivers jdbc disponibles para iniciar conexiones. Connection getconnection(string url): intenta iniciar una conexión a una base de datos según los parámetros especificados en el url. Generalmente el string de conexión tiene el siguiente formato: jdbc:<driver>:<propiedades de la conexión> Para MySQL: jdbc:mysql://<servidor>:<puerto>/<base_datos>?<parametros> Por ejemplo: jdbc:mysql://localhost:3306/batallas?user=barco&password=pwbarco Connection getconnection(string url, String usuario, String clave): idem al anterior pero por compatibilidad y seguridad, el usuario y la clave de acceso, son parámetros individuales. setlogintimeout(int segundos): configura la cantidad de segundos de espera para intentar establecer la próxima conexión a una base de datos. 2 Clase Connection (Paquete java.sql) Connection: interfaz para implementar una sesión cliente-servidor con una base de datos. Statement createstatement(): crea una nueva sentencia para ejecutar código SQL en forma directa en el servidor a traves de la conexión. PreparedStatement preparestatement(string sql): crea una sentencia preparada con una estructura predeterminada dada por parámetros, para luego enviar los datos efectivos. boolean isvalid(int timeout): verifica que la conexión está abierta y disponible para ejecutar una operación. Es necesaria para determinar si la conexión de red aun permanece activa desde la ejecución del último SQL. close(): cierra la conexión y libera los recursos utilizados. setautocommit(boolean autocommit), commit(), rollback(): utilizados para el manejo de transacciones en la conexión actual. 3 2

Conexión JDBC a MySQL // Se carga y registra el driver JDBC de MySQL (versiones de JDBC anterioes a 4.0) try Class.forName("com.mysql.jdbc.Driver").newInstance(); catch (Exception ex)... // Intento de conexión a una base de datos String servidor = "localhost:3306"; String basedatos = "batallas"; String usuario = "admin_batallas"; String clave = "pwbatallas"; String url = "jdbc:mysql://" + servidor + "/" + basedatos; java.sql.connection cnx; try cnx = java.sql.drivermanager.getconnection(url, usuario, clave); catch (java.sql.sqlexception ex)... 4 Clase Statement (Paquete java.sql) Statement: se utiliza para ejecutar una sentencia SQL en base a un string estático, ya sea un comando o una consulta. boolean execute(string sql): ejecuta cualquier tipo de SQL. Si es una consulta se debe recuperar el resultado mediante el método ResultSet getresultset(); int executeupdate(string sql): sólo para comandos de actualización de datos (insert, delete, update) o configuración dinámica de la sesión (transacciones, concurrencia, etc). ResultSet executequery(string sql): sólo para consultas que retornan un resultado en filas o registros. addbatch(string sql), int[] executebatch(), clearbatch(): permiten ejecutar una secuencia de comandos enviados en un lote. void setquerytimeout(int seconds): impone un límite de espera para la ejecución de la sentencia. close(): cierra la sentencia liberando los recursos utilizados. 5 3

Clase ResultSet (Paquete java.sql) ResultSet: contiene el conjunto resultado de una consulta SQL, estructurado en filas y columnas, con el comportamiento de un iterador. boolean next(): avanza el índice interno del iterador a la proxima fila. Retorna false si no hay mas filas. String getstring(int columnindex), String getstring(string columnlabel): permiten recuperar los valores de las columnas como un String, según su posición en la fila (la primer columna es 1) o mediante su nombre respectivamente. int getint(...), long getlong(...), float getfloat(...), double getdouble(...), boolean getboolean(...), Date getdate(...), Timestamp gettimestamp(...), Object getobject(...), etc...: una función para cada tipo de dato (java) de las columnas. boolean wasnull(): verifica si el último valor recuperado de una columna correpondía al valor NULL de SQL. boolean previous(), boolean first(), boolean last(), boolean absolute(int row), boolean relative(int rows): funciones para navegar en el conjunto resultado. ResultSetMetaData getmetadata(): para recuperar los meta-datos (cantidad de columnas, tipos, ) del conjunto resultado y de las columnas. 6 Clase ResultSetMetaData (Paquete java.sql) ResultSetMetaData: permite obtener los tipos y propiedades de las columnas de un conjunto resultado (ResultSet): int getcolumncount(): cantidad de columnas en el resultado. String getcolumnlabel(int column), String getcolumnname(int column): recuperar el nombre modificado o el nombre real de una columna respectivamente. String getcolumnclassname(int column): recuperar la clase de Java determinada como predefinida para el tipo de dato de una columna. int getcolumntype(int column), String getcolumntypename(int column): recuperar el tipo de dato SQL estándar y SQL específico de una columna respectivamente. int isnullable(int column), boolean isautoincrement(int column): propiedades particulares de una columna. boolean issearchable(int column): determina si es posible ejecutar un filtro en el WHERE de una consulta sobre la columna indicada. 7 4

Consultas SQL try // Se crea una sentencia jdbc para realizar la consulta java.sql.statement stmt = cnx.createstatement(); // Se prepara el string SQL de la consulta String sql = "SELECT nombre_barco, id, capitan FROM barcos ; // Se ejecuta la sentencia y se recibe un resultado java.sql.resultset rs = stmt.executequery(sql); // Se recorre el resultado while (rs.next()) String nombrebarco = rs.getstring("nombre_barco"); int id = rs.getint("id"); String capitan = rs.getstring("capitan"); rs.close(); stmt.close(); catch (java.sql.sqlexception ex) 8 Actualización de datos Comandos o sentencias de manipulación de datos (insert, update, delete) que no retornan un resultado. try // Se crea una sentencia jdbc para realizar la consulta java.sql.statement stmt = cnx.createstatement(); // Se prepara el string SQL de la inserción String sql = "INSERT INTO barcos (nombre_barco, id, capitan) " + "VALUES ('Bismark', 22, 'Ernst Lindeman')"; // Se ejecuta la inserción stmt.execute(sql); // Se retornan los recursos utilizados cerrando la sentencia stmt.close(); catch (java.sql.sqlexception ex) System.out.println("Mensaje: " + ex.getmessage()); // Mensaje retornado por MySQL System.out.println("Código: " + ex.geterrorcode()); // Código de error de MySQL System.out.println("SQLState: " + ex.getsqlstate()); // Código de error del SQL standart 9 5

Sentencias Preparadas Se utilizan cuando una misma sentencia (consulta o actualización) debe ejecutarse repetidamente con la misma estructura pero distintos valores. Más comunmente usado en inserciones de registros en masa. Acelera la ejecución al evitar la interpretación del SQL de manera individual. Una vez preparada la sentencia en el servidor, sólo se envian los datos efectivos. El método puede interpretarse como una pre-compilación de las sentencias para un posterior uso repetitivo. No sólo se ahorran ciclos de cpu en el servidor, sino también ancho de banda para la trasmisión de comandos y datos. String sql = "INSERT INTO barcos (nombre_barco, id, capitan) VALUES (?,?,?)"; // Se crea un sentencia preparada java.sql.preparedstatement stmt = cnx.preparestatement(sql); // Se ligan los parámetros efectivos stmt.setstring(1, "Bismark"); stmt.setint(2, 22); stmt.setstring(3, "Ernst Lindeman"); // Se ejecuta la inserción stmt.executeupdate(); // se cierra la sentencia stmt.close(); 10 Clase JTable (paquete javax.swing.table) Permite mostrar graficamente tablas con datos, permitiendo opcionalmente al usuario editar los datos. Cada tabla JTable usa un objeto TableModel para manejar y almacenar los datos. Si no se especifica ningun modelo de tabla, JTable utiliza por defecto el modelo DefaultTableModel que almacena los datos como vector de vectores. Para crear un modelo de tabla se debe implementar la interface TableModel. Generalmente se implementa extendiendo la clase DefaultTableModel o AbstractTableModel. Clase DBTable (paquete quick.dbtable) Esta construido sobre JTable ( comparte muchos métodos y propiedades) y provee funciones específicas para bases de datos. (Ver ejemplos de su uso en proyecto Batallas) 11 6

Para convertir String a java.util.date: Manejo de Fechas Date fecha = (new SimpleDateFormat("dd/MM/yyyy")).parse("31/12/2009"); Para convertir java.util.date a String: String fechastr = (new SimpleDateFormat("dd/MM/yyyy")).format(fecha); Para convertir java.util.date a String para SQL: String fechastrsql = (new SimpleDateFormat("yyyy-MM-dd")).format(fecha); Para convertir java.util.date a java.sql.date de JDBC: java.sql.date retorno = java.sql.date.valueof( (new SimpleDateFormat("yyyy-MM-dd")).format(fecha)); (Mas funciones ver fechas.java en proyecto Batallas) 12 Importar el proyecto Batallas en Eclipse 13 7

Instalación del Driver JDBC de MySQL en Eclipse 14 Selección de la librería externa 15 8

Selección de la librería externa: JDBC MySQL connector 16 Selección de la librería externa: quicktable (DBTable) 17 9

Generar el archivo JAR de un proyecto en Eclipse 18 Generar el archivo JAR de un proyecto en Eclipse (cont.) 19 10

Generar el archivo JAR de un proyecto en Eclipse (cont.) 20 Referencias Driver JDBC de MySQL: http://dev.mysql.com/downloads/connector/j/ Swing / JTable: http://java.sun.com/docs/books/tutorial/uiswing http://download.oracle.com/javase/tutorial/uiswing/components/table.html Quick.DBTable: (no tiene mas soporte) http://quicktablejava.appspot.com/home.html http://quicktable.org Eclipse: http://www.eclipse.org/downloads Window builder: http://www.eclipse.org/windowbuilder/download.php JDK 8 SE: http://java.sun.com/javase/downloads/index.jsp Java API: http://java.sun.com/javase/7/docs http://java.sun.com/javase/7/docs/technotes/guides/jdbc 21 11