Beruflich Dokumente
Kultur Dokumente
Business logic
Oracle Database
JDBC
Client application
JDBC
Relational DB
QUE ES JDBC?
JDBC es una interface estndar para conectarse a una base de datos relacional desde Java.
El paquete java.sql es el corazn de la API JDBC 2.0 El paquete javax.sql es la API de Extensin Estndar JDBC 2.0 (opcional) JDBC 4.0 API incluye la Core API y la Optional Package API
QUE ES JDBC?
Los vendedores de Base de Datos implementan estas interfaces de diferentes manera. Usando JDBC, podemos escribir cdigo que:
Se conecte a uno o mas servidores de datos Ejecutar alguna sentencia SQL Obtener un conjunto de resultados de manera que podamos navegar a travs del resultado de una consulta Obtener metadata desde el servidor de datos
SELECT
4b. Process sentencias
DML/ DDL
6. Cerrar conexiones
SQLException tiene un numero de mtodos que podemos llamar para obtener informacin sobre la excepcin:
getMessage():
getErrorCode():
vendedor.
getSQLState():
JDBC 2.0 y versiones posteriores proveen otros mtodos para obtener un objeto conexin (JNDI).
jdbc:<subprotocol>:<subname>
Protocol Database Identification
jdbc:oracle:<driver>:@<database>
Ejemplo usando Oracle Thin JDBC driver:
jdbc:oracle:thin:@myhost:1521:ORCL
4. Execute SQL statement 4a. Execute SELECT statement 4b. Submit DML/ DDL statement 6. Close unneeded objects
EL OBJETO RESULTSET
El driver JDBC retorna el resultado de una consulta en un objeto ResultSet. ResultSet: Es una tabla de data que representa un set de resultados provenientes de la base de datos Mantiene un cursor apuntando a la fila actual de la data Provee mtodos para recuperar valores de columnas.
Ejemplo:
Statement stmt = conn.createStatement(); int rowcount = stmt.executeUpdate ("DELETE FROM order_items WHERE order_id = 2354");
Eejemplo:
Statement stmt = conn.createStatement(); int rowcount = stmt.executeUpdate ("CREATE TABLE temp (col1 NUMBER(5,2), col2 VARCHAR2(30)");
MANEJANDO EXCEPCIONES
Sentencias SQL pueden java.sql.SQLException.
Use mtodos manejadores de error estndar Java
try
lanzar
una
excepcin
{ rset = stmt.executeQuery("SELECT empno,ename FROM emp"); } catch (java.sql.SQLException e) { ... /* handle SQL errors */ }
... finally { // clean up try { if (rset != null) rset.close(); } catch (Exception e) { ... /* handle closing errors */ } ...
EL OBJETO PreparedStatement
Previene el reparsing de sentencias SQL . Use este objeto para sentencias que queremos ejecutar mas de una vez.
Puede contener variables que podemos proveer con un valor cada vez que ejecutemos la sentencia
2. Ejecutar la sentencia.
pstmt.executeQuery(); pstmt.executeUpdate();
int empNo = 3521; PreparedStatement pstmt = conn.prepareStatement("UPDATE emp SET ename = ? WHERE empno = ? "); pstmt.setString(1, "DURAND"); pstmt.setInt(2, empNo); pstmt.executeUpdate();
POOL DE CONEXIONES
Middle tier