Acceso a BDs en Java: JDBC



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

Java y MySQL. Ciclo de ejecución

Acceso a BD desde Java. JDBC

JDBC. Una mini-introducci. introducción

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

JDBC: Java DataBase Conectivity

JDBC. Francisco Javier Solans Benedí Software Developper

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

MSSQL Server Java

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

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

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

Java y MySQL. Ciclo de ejecución

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

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

NORMAS PARA LA ENTREGA DE LOS LABORATORIOS

Tópicos Avanzados de Programación (TAP3501)

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

MySQL con Java en MS Windows

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

Bases de Datos Introducción a la Conectividad de

Bases de datos y JDBC

Programación Orientada a Objetos II. La Plataforma JDBC

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

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

Federico Peinado

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

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

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

Práctica sobre compartición de instancias remotas.

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

Formato para prácticas de laboratorio

JDBC. Aplicaciones Distribuidas

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

Acceso a bases de datos con JDBC

JAVA 5. Conexión con Bases de Datos

Conexión de Mysql con NetBeans

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

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

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

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

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

APÉNDICE A: ACCESO A UNA BASE DE DATOS CON JDBC

Acceso a bases de datos desde Java: JDBC

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

Especificaciones del driver JDBC

Desarrollo de Software con

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

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

Solución Examen Junio 2007 (a) Ejercicio GeoTaxi (1h 20 min.) Diagrama de Casos de Uso y. Casos de uso (2,5 puntos) Modelo de Dominio (1,5 puntos)

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

Práctica 2: Java Remote Method Invocation (RMI)

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

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

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

Acceso a bases de datos desde Java: JDBC

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

8. JDBC: acceso a bases de datos

Modulo 1 El lenguaje Java

TEMA 11 INDICE [PROGRAMACIÓN]

1. Manejo de memoria estática 2. Manejo de memoria dinámica

RMI [Remote Method Invocation]

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

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

ARTE I BASE DE DATOS EN JAVA

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

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

Dossier de prácticas

Programación y Acceso a BD con SQL

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

FAMILIARIZANDONOS CON JAVA

1. Visión general de RMI

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB

Introducción a JDBC - Base de datos con Java

Programación Orientada a Objetos. Java: Excepciones

Introducción al lenguaje Java

Ejercicios - Persistencia en Android: ficheros y SQLite

Índice. Introducción Qué es? Conceptos clave Instalación Ejemplo Hola Mundo Procedimientos Almacenados

Taller de Programación II J2EE

Módulo 15. Introducción a JDBC, Java Database Connectivity. Programación Orientada a Objetos Página 16.0 de 25

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Luego lleve el cliente a otra máquina y ejecute desde ahí usando el nombre de la máquina del servidor.

JDBC: Conexiones con bases de datos desde Java

Transcripción:

Acceso a BDs en Java: JDBC Bases de Datos II 1 Introducción Para hacer una aplicación de BDs en Java se necesita disponer del driver adecuado para el SGBD. En nuestro caso necesitamos el de mysql. http://dev.mysql.com/downloads/connector/j/3.0.html Ahí se obtiene el archivo: mysql-connector-java-3.0.14-production.jar 2 1

Introducción Este fichero debe estar en un sitio visible para Java tanto al compilar la aplicación como al ejecutarla. javac classpath mysql-connecor-java-3.0.12-production.jar;. Aplicación.java java classpath mysql-connecor-java-3.0.12-production.jar;. Aplicación Al inicio de nuestra aplicación debe aparecer (al menos) la siguiente biblioteca de clases: import java.sql.*; 3 Introducción Lo primero que hemos de hacer es ver cual es la clase que implementa al controlador JDBC: com.mysql.jdbc.driver Y debe ser registrado para poder ser utilizado en la aplicación (en el código de la propia aplicación) Class.forName( com.mysql.jdbc.driver ); DriverManager.registerDriver(new com.mysql.jdbc.driver()); 4 2

Introducción Después se debe construir una URL a la base de datos para JDBC. Por ejemplo, para mysql sería de la siguiente forma: jdbc.mysql://[host][:port]/[database][?propname1][=propvalue1][&propname2]=[propvalue2]... jdbc.mysql://localhost:3306/libros?user=usuario&password=clave jdbc:mysql://misiapepa.uv.es:3306/estancias 5 Crear conexión Una vez que se ha registrado la clase del controlador se crea una conexión (con el siguiente método estático de la clase DriverManager): public static Connection getconnection(string url) throws SQLException string url = jdbc:mysql://localhost:3306/estancias?user=usu1&password=clave ; Connection con = DriverManager.getConnection(url); 6 3

Ejecución de sentencias Se necesita crear un objeto de la clase Statement a partir del objeto de tipo Connection. Statement sentencia = con.createstatement(); Una vez creada la sentencia se pueden ejecutar consultas: ResultSet executequery(string SQL); int executeupdate(string SQL); boolean execute(string SQL); //Cuando no se sabe de antemano el tipo //Ejemplo: ResultSet res = sentencia.executequery("select ciudad from casas"); 7 Ejecución de sentencias El último de estos métodos devuelve true si la senctencia contenía un SELECT. En ese caso se pueden obtener los resultados llamando al método getresultset() que devuelve un objeto del tipo ResulSet. //Ejemplo: tiposentencia = sentencia.execute(sentenciasql); if (tiposentencia) ResultSet res = sentencia.getresulset(); 8 4

Ejecución de sentencias II También se puede ejecutar sentencias utilizando la clase PreparedStatement: se utiliza en las que se va a ejecutar varias veces la misma consulta. String Consulta = INSERT INTO tabla(usuario,email,fecha) values (?,?,?) ; PreparedStatement psentencia = con.preparestatement(consulta); Después se rellenan los los valores que se desee: psentencia.setstring(1,user); //Supongo variable user contiene el valor correcto psentencia.setnull(2,email); psetencia.setdate(3,fecha); //Y se ejecuta psentencia.executeupdate(); 9 Obtención de resultados La clase ResultSet dispone de métodos para moverse en filas y de métodos para seleccionar una determinada columna: void beforefirst() void first(); void afterlast(); void last(); boolean next(); boolean previous(); float getfloat(int numerocolumna); float getfloat(string NombreColumna); int getint(int numerocolumna); int getint(string NombreColumna); java.sql.date getdate(string NOmbreColumna); int getcolumncount() //Devuelve número de columnas String getcolumnname(int column) //Obtiene el nombre de la columna String getcolumntypename(int column); 10 5

Obtención de resultados El resultset proporciona también una forma de detectar si el valor de una columna es NULL: boolean wasnull() //devuelve true si la última columna leida era NULL 11 import java.sql.* ; import java.math.*; class EjemploJDBCmysql public static void main (String args []) try DriverManager.registerDriver(new com.mysql.jdbc.driver()); //Registro el driver //Obtengo una conexión Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3 306/estancias"); 12 6

Statement sentencia = con.createstatement(); ResultSet res = sentencia.executequery("select IdCasa,ciudad, DispDesde,DispHasta from casas"); while (res.next()) String s = res.getstring("ciudad"); int id = res.getint("idcasa"); java.sql.date fecha1 = res.getdate("dispdesde"); System.out.println(id + " " + s + " " + fecha1); sentencia.close(); con.close(); catch( SQLException ex) System.out.println("SQLException:" + ex.getmessage()); System.out.println("SQLEState:" + ex.getsqlstate()); System.out.println("Vendor Error:" + ex.geterrorcode()); 13 import java.sql.*; public class prujdbc public prujdbc() public static void main(string args[]) try DriverManager.registerDriver(new oracle.jdbc.driver.oracledriver()); System.out.println("Conectando..."); Connection con; con = DriverManager.getConnection("jdbc:oracle:oci8:@", bdii01", bdii01"); System.out.println("CONECTADO."); String query = "SELECT nombre,estilo FROM autores"; Statement stmt; stmt = con.createstatement(); 14 7

ResultSet result = stmt.executequery(query); while ( result.next() ) String name = result.getstring(1) + " " + result.getstring(2); System.out.println(name); result.close(); stmt.close(); String inser = "INSERT INTO autores (id,nombre,estilo,fechanacimiento) values (100,'desconocido','???','2002-01-01')"; stmt = con.createstatement(); stmt.execute(inser); stmt.close(); con.close(); catch (SQLException ex) System.err.print("SQLException: "); System.err.println(ex.getMessage()); 15 8