Professional Documents
Culture Documents
Romn Gajardo
JDBC
Java DataBase Connectivity
!
!
!
JDBC es una biblioteca de clases que permite la conexin con bases de datos utilizando Java.
Permite realizar operaciones CRUD(create, read, update, delete) sobre una bases de datos
relacionases utilizando SQL (Structured Query Language).
Una de las ventajas de JDBC es que la aplicacin que desarrollars ser independiente de la
plataforma, ya que es muy fcil cambiar de un motor de base de datos a otro, es decir, no
necesitamos modificar el 100% de nuestro cdigo si quisiramos cambiar a la base de datos de
Oracle, o SQL Server.
!
Java
Java
Romn Gajardo
Conexin
Comando
!
!
Resultado
!
TIPOS DE DRIVER JDBC
Existen cuatro tipos de driver o controladores JDBC:
El tipo de driver utilizado en los proyectos a trabajar corresponden al Driver tipo 4, el cual es
suministrado por el fabricante de la base de datos y su finalidad es convertir llamadas JDBC en
un protocolo de red comprendido por la base de datos. Es el mtodo ms eficiente de acceso a
base de datos.
!
Es una de las mejores soluciones ya que su cdigo esta escrito 100% en Java,
Java
Java
Romn Gajardo
!
Para obtener una conexin desde una base de datos, se puede obtener desde un
DriverManager o a travs de un DataSource, la diferencia entre ambos es que el DataSource
est orientado para trabajar en entornos Web principalmente con la plataforma Java Enterprise
Edition (JEE), Mientras que DriverManager puede ser utilizado tanto para aplicaciones JSE o
JEE.
!
!
!
Java
Java
Romn Gajardo
Los pasos para poder realizar una instruccin SQL desde Java se resume en 5 pasos, el cual el
primer paso corresponde a la carga del driver en donde se debe especificar la ruta completa
de la clase a cargar dependiendo de la base de datos a utilizar (MySQL, Postgre, Oracle,
SQL Server, etc).
El segundo paso corresponde a obtener la conexin utilizando la clase DriverManager, para ello,
esta clase provee de un metido el cual se debe especificar la url de la base de datos, el
usuario de la base de datos y el password de la base de datos.
En el tercer paso, con la conexin obtenida se prepara el comando SQL que de acuerdo a la
figura existen tres maneras de poder crear un comando SQL. El comando visto en clases
corresponde a PreparedStatement.
En el cuarto paso se procede a utilizar los mtodos de PreparedStatement de los cuales los mas
relevantes que permiten ejecutar sentencias SQL, tal como se muestra en la figura.
Finalmente se recomienda siempre una vez finalizada la consulta SQL cerrar la conexin a la
base de datos.
!
!
Java
Java
Romn Gajardo
donde el nombre del driver es una ruta que es dada por el fabricante de la base de datos. En
nuestro caso utilizamos el conector de MySQL para cargar el Driver por lo tanto la sintaxis para
cargar el driver de MySQL es
Esta instruccin carga el driver de la base de datos y permite que podamos conectarnos con
MySQL a travs de la instruccin DriverManager.getConnection
!
En el caso de MySQL la manera de obtener una conexin es:
!
Java
Java
Romn Gajardo
En este ejemplo, podemos ver una consulta precompilada ya que la instruccin SELECT no est
100% lista puesto que existe en la condicin WHERE un ? el cual no se le ha definido un valor.
Los mtodos para definir estos parmetros de entrada son del tipo setXXX, por ejemplo:
!
Como podemos ver en el ejemplo, adems de setInt setString, existen muchos mtodos para
especificar parmetros de entrada.
Java
Java
Romn Gajardo
Una vez que se hayan definido cada uno de los argumentos de entrada, PreparedStatement
entrega dos mtodos que permiten ejecutar sentencias como INSERT, UPDATE, DELETE
(executeUpdate mostrado arriba) y SELECT (executeQuery)
!
Cuando se ejecutan sentencias SELECT usando el metodo executeQuery, se obtiene como
respuesta un conjunto de resultados, que en Java es representado por un objeto llamado
ResultSet.
!
!
!
!
Java
Java
Romn Gajardo
La recuperacin de los valores de las columnas se realiza a travs de los mtodos getXXX,
donde, los mtodos getXXX que se pueden utilizar, se especifican en la siguiente tabla:
!
Cada uno de estos pasos se definen en dos clases una es la clase Conexin, la cual se encarga
de brindar mtodos como:
!
!
!
Java
Java
Romn Gajardo
desconectar(): se encarga de cerrar la conexin, una vez que se ha realizado la consulta SQL.
(close)
!
prepararConsulta(String sql): se encarga de crear un PreparedStatement con el fin de cargar
una consulta SQL precompilada (INSERT, UPDATE, DELETE, SELECT) (prepareStatement()),
este mtodo utiliza una excepcin en caso de que la consulta SQL est mal redactada.
!
Java
Java
Romn Gajardo
!
ejecutarUPDATE(): se encarga de ejecutar una sentencia SQL de tipo INSERT, UPDATE,
DELETE (executeUpdate), para ejecutar este mtodo es necesario definir antes todos los
parmetros de entrada, utiliza un SQLException en caso que no estn definidos los parmetros
de entrada.
Java
10
Java
Romn Gajardo
Por otra parte, existe una clase que se encarga de ejecutar cada uno de los mtodos descritos
anteriormente, la cual se denomina DAO (Data Access Object) la cual se encargar de tener
mtodos que se encarguen de insertar actualizar eliminar y consultar un registro en la base de
datos. ver proyecto realizado en clases.
Java
11