Académique Documents
Professionnel Documents
Culture Documents
2
Funcionamiento JDBC
Programa
Java
JDBC Dbms
DRIVER
3
Drivers compatibles JDBC
Oracle
MySQL
DB2
Otros
Access
5
Carga de driver
Registro de MySQL JDBC Driver:
6
Conexin a MySQL
Para crear una conexin con el servidor de base de datos, JDBC usa la clase
DriverManager, la cual, por medio del mtodo getConnection() crea una
instancia de la clase Connection, el cual contiene la informacin de la
conexin.
Usuario
Password
Se indica el driver Direccin IP del Servidor Puerto de Esquema de Base de datos sobre
que se desea cargar de base de datos comunicacin la que se trabajar
7
Conexin a MySQL
Una vez creado el objeto del tipo Connection, ste contendr la
informacin de la conexin (siempre y cuando haya sido exitosa).
Si existiera un error de conexin al servidor de Base de Datos, se emitir
una excepcin del tipo SQLException.
8
Creando Statements
Un objeto del tipo Statement es una interfaz que representa una
sentencia SQL.
Cuando se ejecuta (executeQuery) un objeto del tipo Statement, se
genera un objeto del tipo ResultSet.
El objeto ResultSet contiene una tabla de datos los cuales representan la
informacin devuelta por la DB.
Para crear un objeto Statement primero debe existir un objeto
Connection.
9
Creando Statements
Creando un objeto Statement:
10
Ejecutando Queries - Sentencia SELECT
Una vez creado el objeto Statement, es necesario definir la sentencia SQL que
se desea ejecutar. Pasarla como parmetro del mtodo executeQuery(SQL) y
capturar el resultado.
Sentencia SQL
Sentencia SQL
DELETE
13
Tipos de Datos SQL
15
Cerrando Conexiones
Cuando se termina de ejecutar una sentencia SQL, el objeto Statement
debe ser cerrado para liberar los recursos que est usando.
Es recomendado cerrarlo como parte de la sentencia finally del try-catch,
de esta manera, nos aseguramos que el objeto se cierre an si se ha
lanzado una excepcin.
16
SQL injection
Es una sentencia SQL que permite al usuario que interacta con la
aplicacin, inyectar o ejecutar comandos SQL indebidos mediante el
ingreso de parmetros de entrada manipulados.
Es uno de los ataques ms comunes a los sistemas de informacin.
Analizar el siguiente ejemplo:
17
SQL injection
En el ejemplo anterior, username y password son parmetros que se han
recibido previamente desde alguna aplicacin (consola o GUI).
Si el usuario intencionalmente coloca:
Username = admin OR 1=1
Password = (vacio)
18
Prepared Statements
Con el fin de evitar este comportamiento se utilizarn Prepared
Statements, en lugar de Statements, con el fin de escapar los caracteres
que sern enviados como parte de la sentencia SQL.
Los objetos PreparedStatement hereda de la clase ms general
Statement.
Si una consulta se va a ejecutar muchas veces, es preferible usar
Prepared Statements, pues el DBMS solo lo compila 1 vez.
Cuando se usan Prepared Statements, en vez de colocar los parmetros
de entrada directamente en la sentencia SQL, se coloca el smbolo ?,
cuantas veces sea necesario por cuantos parmetros de entrada se
tengan.
19
Prepared Statements
Mostrar el empleado con nombre Steven y perteneciente al departamento 90.
20
Observaciones
Cuando se usa LIKE, las wildcards se utilizan en el seteo de parmetros y
no en la definicin de la sentencia:
Con JDBC:
21
Alguna consulta?
22
Muchas gracias
23