• No se han encontrado resultados

Programación Orientada a Objetos II. La Plataforma JDBC

N/A
N/A
Protected

Academic year: 2021

Share "Programación Orientada a Objetos II. La Plataforma JDBC"

Copied!
22
0
0

Texto completo

(1)

Programación Orientada

a Objetos II

(2)

Introducción a (JDBC)

Java Database Connectivity

El API JDBC permite acceder a cualquier tipo

de datos tabulares y comúnmente se utiliza

para acceder a bases de datos relacionales.

(3)

Introducción a (JDBC)

Java Database Connectivity

Con JDBC se pueden realizar las siguientes

tres tareas básicas con bases de datos:

Conectarse a una base de datos

Consultar y actualizar una base de datos

Recuperar y procesar los datos obtenidos de

(4)

Arquitectura JDBC

Dos capas

DBMS

Aplicación Java

JDBC

Protocolo propietario

del DBMS

Servidor de base de datos

Máquina cliente

(5)

Arquitectura JDBC

Dos capas

La aplicación se comunica directamente con

la base de datos (BD).

Se requiere un driver JDBC para la BD.

Las instrucciones del usuario se entregan a la

BD y el resultado de éstas se regresa al

usuario.

La BD puede estar en otra máquina

conectada por medio de la red.

A esta configuración se le conoce como

(6)

Arquitectura JDBC

Tres capas

DBMS

Servidor de Aplicación

(Java)

JDBC

Protocolo propietario

del DBMS

Servidor de base de datos

Máquina cliente (GUI)

Applet o

navegador HTML

HTTP, RMI, CORBA u otro

Máquina servidor

(lógica de negocio)

(7)

Arquitectura JDBC

Tres capas

Las instrucciones se envían a una capa

intermedia de servicios que a su vez los envía

a la BD.

La BD procesa las instrucciones y regresa el

resultado a la capa intermedia, la cual lo envía

al usuario.

Este modelo permite controlar el acceso y las

actualizaciones a los datos.

También simplifica el despliegue de las

(8)
(9)

¿

Qué necesitamos para acceder a una BD desde

un programa en Java?

(10)

Conector para MySQL

(11)

Agregar biblioteca en Netbeans

En el listado de bibliotecas del proyecto, dar

click derecho y seleccionar

Add Library.

(12)

Para conectarse desde un

programa en Java

Dirección del servidor de BD (MySQL)

Nombre de la BD, login y password de la BD

Registrar el controlador o driver

(13)

public class Main {

static String bd = "TestJava"; static String login = "XXXXXX"; static String password = "YYYYYY";

static String url = "jdbc:mysql://computacion.mxl.uabc.mx/"+bd;

public static void main(String[] args) {

Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(url,login,password); if (conn != null) {

System.out.println("Conexión a base de datos "+url+" ... Ok"); conn.close();

}

} catch(SQLException ex) { System.out.println(ex);

} catch (ClassNotFoundException ex) { System.out.println(ex);

} catch (InstantiationException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); }

} }

(14)

Crear un tabla en una BD

// Crear una tabla en la BD

try{

Statement st = conn.createStatement();

String tabla = "CREATE TABLE Empleados(NumeroEmpleado integer, Nombre varchar(10), Sueldo double(6,2) )"; st.executeUpdate(tabla);

System.out.println("Tabla creada con éxito!"); st.close; // cerrar statement para liberar recursos } catch(SQLException s){

System.out.println("La tabla Empleados ya existe!"); }

try {

conn.close(); // cerrar la conexión } catch (SQLException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); }

(15)
(16)

Guardar datos en la BD

// Insertar datos en la BD

PreparedStatement s; try {

s = conn.prepareStatement("INSERT INTO Empleados (NumeroEmpleado, Nombre, Sueldo) VALUES(?,?,?)");

s.setInt(1, 1001);

s.setString (2, "Maria"); s.setDouble(3, 1500.25);

int count = s.executeUpdate();

s.close (); // cerrar statement para liberar recursos

System.out.println (count + " renglones fueron insertados."); } catch (SQLException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); }

(17)
(18)

Consultar datos de BD

// Consultar datos de la BD try { Statement s = conn.createStatement();

s.executeQuery ("SELECT NumeroEmpleado, Nombre, Sueldo FROM Empleados"); ResultSet rs = s.getResultSet ();

int count = 0; while (rs.next ()) {

int noEmp = rs.getInt ("NumeroEmpleado"); // nombre de la columna String nomEmp = rs.getString ("Nombre");

Double sueldo = rs.getDouble(3); // numero de columna

System.out.println (

"Empleado Numero = " + noEmp + ", nombre = " + nomEmp

+ ", sueldo = " + sueldo); ++count;

}

rs.close (); // liberar resultset s.close (); // liberar statement

System.out.println (count + " registros fueron recuperados."); } catch (SQLException ex) {

(19)

Borrar de una BD

// Borrar un renglón de la BD

try {

Statement s;

s = conn.createStatement();

s.executeUpdate("delete from Empleados where NumeroEmpleado=1001");

System.out.println("Reglón borrado con éxito.");

s.close(); // liberar statement

} catch (SQLException ex) {

Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

}

(20)

Preguntas

¿

Cómo cambio la estructura de una tabla?

¿Cómo verifico que exista una tabla?

¿Qué diferencia hay entre utilizar un

Statement

y un

PreparedStatement

?

¿Qué métodos tiene

ResultSet

para

(21)

Ejercicio

Crear una tabla para almacenar datos de un

libro: título, número de autor, ISBN, editorial,

fecha de publicación, costo.

Crear una tabla para almacenar los datos de

autores: número de autor, nombres, apellido

paterno, apellido materno, país, edad.

Desde una interfaz de usuario gráfica,

capturar y guardar datos en cada una de las

tablas.

(22)

Referencias

Tutorial JDBC - http://download.oracle.com/javase/tutorial/jdbc/overview/index.html

Manual de referencia de MySQL - http://dev.mysql.com/doc/refman/5.5/en/

Practica de 10 de Base de Datos -

http://yaqui.mxl.uabc.mx/~bdatos/sem05-2/practica10.pdf

Java Api Statement -

http://download.oracle.com/javase/6/docs/api/java/sql/Statement.html

Java Api PreparedStatement -

http://download.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html

Java Api ResultSet -

Referencias

Documento similar

Se propone crear un sistema bajo la programación orientada a objetos en Java ya que es el lenguaje que proporciona diversas ventajas, que nos permitirá hacer

Con el análisis desarrollado en este capítulo se puede llegar a la conclusión de que es necesario para definir una DSSA un ambiente de desarrollo, una arquitectura base, un framework

El diagrama de despliegue para este sistema incluye la representación de una PC que realiza la función de servidor y una o más PCs Cliente conectadas al Servidor por medio

Se utilizó Java como lenguaje de programación, PostgreSQL 8.3 como servidor de aplicaciones, el framework Hibernate para el acceso a datos, el framework Seam para la unión entre

<El sistema muestra las reglas para el análisis y la secuencia, luego busca sitios blancos en la secuencia, los SNP, luego de presionar la opción

Otro ejemplo son las “Librerías de cliente/servidor” que son las que permiten hacer llamadas a funciones del servidor desde el cliente usando las funciones JavaScript

Por ejemplo, que cuando la ejecución del flujo inicial entre al estado que despliega la vista para entrar el criterio de búsqueda, hace la selección de vista

Aquest fitxer conté les propietats del JDBC per a realitzar la connexió amb la Base de Dades i conté la direcció de cada sqlMap.xml de cada taula. o daoConfig.xml: És el fitxer