APUNTE JDBC

Java Román Gajardo JDBC Java DataBase Connectivity ! ! ! JDBC es una biblioteca de clases que permite la conexión co

Views 154 Downloads 3 File size 801KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Java

Román Gajardo

JDBC Java DataBase Connectivity

! ! !

JDBC es una biblioteca de clases que permite la conexión 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 aplicación que desarrollarás será independiente de la plataforma, ya que es muy fácil cambiar de un motor de base de datos a otro, es decir, no necesitamos modificar el 100% de nuestro código si quisiéramos cambiar a la base de datos de Oracle, o SQL Server.

Muy importante de mencionar es que cada fabricante de base de datos, se encargará de proporcionar un driver JDBC específico para su base de datos.

! Java

1

Java

Román Gajardo

Componentes de la API JDBC JDBC se divide en tres componentes, que se encuentran en la librería java.sql:

Conexión

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 método más eficiente de acceso a base de datos.

! Es una de las mejores soluciones ya que su código esta escrito 100% en Java,

Java

2

Java

Román Gajardo

Uso de JDBC en aplicaciones Java

! Para obtener una conexión desde una base de datos, se puede obtener desde un DriverManager o a través 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

3

Java

Román Gajardo

Pasos para utilizar JDBC en aplicaciones Java

Los pasos para poder realizar una instrucción 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 conexión 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 conexión 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 métodos 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 conexión a la base de datos.

! ! Java

4

Java

Román Gajardo

PASO 1: Cargar el Driver. La sintaxis para cargar el Driver es:

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 instrucción carga el driver de la base de datos y permite que podamos conectarnos con MySQL a través de la instrucción DriverManager.getConnection

PASO 2: Obtener la Conexión. Una vez cargado el driver en el paso 1, se debe obtener la conexión a través de DriverManager, y su método getConnection al cual hay que especificar la url, usuario y password de la base de datos:

! En el caso de MySQL la manera de obtener una conexión es:

! Java

5

Java

Román Gajardo

PASO 3: Crear el comando SQL Ya que los pasos 1 y 2 corresponden a la obtención de la conexión hacia la base de datos, ahora podemos crear Sentencias SQL utilizando la interface PreparedStatement. PreparedStatement es una interface que nos permite ejecutar instrucciones SQL precompiladas. Ejemplo:

En este ejemplo, podemos ver una consulta precompilada ya que la instrucción SELECT no está 100% lista puesto que existe en la condición WHERE un ? el cual no se le ha definido un valor.

Los signos de interrogación “?” se denominan parámetros de entrada y se especifican por posición. En el ejemplo anterior, tenemos una parámetro de entrada y ocupa la posición 1.

Los métodos para definir estos parámetros de entrada son del tipo setXXX, por ejemplo:



pstmt.setInt(1,20);——> el signo tendrá el valor de 20

Un ejemplo con una instrucción INSERT sería:

! Como podemos ver en el ejemplo, además de setInt ó setString, existen muchos métodos para especificar parámetros de entrada.

Java

6

Java

Román Gajardo

Una vez que se hayan definido cada uno de los argumentos de entrada, PreparedStatement entrega dos métodos 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.

El objeto ResultSet controla la recuperación de los registros. Representa un cursos o iterador sobre los resultados. Posee un método que permite moverse fila a fila el cual se denomina next() Además se tienen dos alternativas para acceder a las columnas del resultado

rs.getString(“Nombre”); //acceder por el nombre de la columna rs.getString(2);//acceder por el numero de la columna (por posición)

! ! ! ! Java

7

Java

Román Gajardo

La recuperación de los valores de las columnas se realiza a través de los métodos getXXX, donde, los métodos 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 Conexión, la cual se encarga de brindar métodos como:

conectar(): se encarga de cargar el driver(Class.forName) y obtener la conexión(getConnection), e s t e m e t o t o d e b e u t i l i z a r d o s e x c e p c i o n e s d e l a s c u a l e s c o r re s p o n d e n a ClassNotFoundException en caso de que no exista el driver o esté mal escrito y SQLException en caso de haber un error en la URL, usuario o password de la base de datos.

! ! ! Java

8

Java

Román Gajardo

desconectar(): se encarga de cerrar la conexión, 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 método utiliza una excepción en caso de que la consulta SQL esté mal redactada.

definirINT(int index, int valor): se encarga de definir un parametro de entrada “?”, en caso de que el signo de interrogación sea de tipo int (setInt), también utiliza una excepción del tipo SQLException en caso de que el indice o la posición no exista.

! Java

9

Java

Román Gajardo

definirSTRING(int index, String valor): se encarga de definir un parametro de entrada “?”, en caso de que el signo de interrogación sea de tipo String (setString), también utiliza una excepción del tipo SQLException en caso de que el indice o la posición no exista.

! ejecutarUPDATE(): se encarga de ejecutar una sentencia SQL de tipo INSERT, UPDATE, DELETE (executeUpdate), para ejecutar este método es necesario definir antes todos los parámetros de entrada, utiliza un SQLException en caso que no estén definidos los parámetros de entrada.

ejecutarSELECT(): se encarga de ejecutar una sentencia SQL de tipo SELECT (executeQuery), para ejecutar este método es necesario definir antes todos los parámetros de entrada si es que tiene, utiliza un SQLException en caso que no estén definidos los parámetros de entrada y que la instrucción SQL sea de tipo SELECT.

Java

10

Java

Román Gajardo

Por otra parte, existe una clase que se encarga de ejecutar cada uno de los métodos descritos anteriormente, la cual se denomina DAO (Data Access Object) la cual se encargará de tener métodos que se encarguen de insertar actualizar eliminar y consultar un registro en la base de datos. ver proyecto realizado en clases.

!

Java

11