Está en la página 1de 8

JDBC

Es la parte del Java Development Kit de Sun que permite la conexin directa de aplicaciones a distintos entornos. Componentes relevantes: Conjunto de clases Drivers para distintos SGBD

Clases JDBC (java.JDBC)


// Carga dinmica del driver Class.forName("jdbc.DriverASCII") DriverManager static Connection getConnection( String especBD, String nombreUsuario, String clave)

Clases JDBC
Connection Statement createStatement() ... Statement void executeUpdate(String SQLupdateExpr) ResultSet executeQuery( String SQLqueryExpr)

Clases JDBC
ResultSet // Representa un conjunto de registros // que se pueden modificar iterativamente Bool next() String getString(String nombreColumna) Float getFloat (String nombreColumna)

Uso bsico de JDBC, I


ClassforName(jdbc.DriverASCII); Connection con = DriverManager.getConnection( jdbc:odbc:cuentas, rmoriyon, cursofse); Statement stmt = con.createStatement();

Uso bsico de JDBC, II


stmt.executeUpdate( CREATE TABLE CUENTA (...)); stmt.executeUpdate(INSERT INTO CUENTA (...) + VALUES (...)); stmt.executeUpdate(UPDATE CUENTA ...); stmt.executeUpdate( DELETE FROM CUENTA ...);

Uso bsico de JDBC, II


ResultSet rs = stmt.executeQuery( SELECT ... FROM CUENTA, ...); while(rs.next()) { String nombre = rs.getString(nombre); Integer dni = rs.getInteger(dniCliente); Integer cc = rs.getInteger(numCuenta); Integer s = rs.getInteger(saldo); System.out.println( nombre + + dni + + cc + + s); }

JDBC: Transacciones
con.setAutoCommit(false); stmt.execute... if (s > 1000) con.commit(); else con.rollBack();

JDBC: expresiones preparadas


class PreparedStatement ps = con.preparedStatement( UPDATE T SET COL = ?); ps.seInt(1, 187);
// ps.execUpdate(187);

Excepciones: SQLException (description, SQLEstate, errorCode, next)

JDBC: Clases de objetos persistentes, I


class PCuenta { Integer numCuenta; PEntidadB pEntidadB; static PreparedStatement constrStmt;
// INSERT INTO CUENTA VALUES (?, ?, ?, ?)

static Statement stmt;

JDBC: Clases de objetos persistentes, I


PCuenta(PEntidadB peb, // otro para numEnt Integer nc = ++peb.getNumCuentas(), Integer saldo = 0) { numCuenta = nc; pEntidadB = peb; constrStmnt.setInt(1, nc); constrStmnt.setInt(2, peb); constrStmnt.setInt(3, saldo); constrStmnt.setString(4, today()); constrStmnt.executeUpdate(); }

JDBC: Clases de objetos persistentes, I


void setSaldo(Integer i) { stmnt.executeUpdate( UPDATE CUENTA SET SALDO = + i + WHERE NUMCUENTA = + numCuenta + AND + NUMENTIDADB = + numEntidadB); }

JDBC: Clases de objetos persistentes, I


int getSaldo() { return stmnt.executeQuery( SELECT SALDO FROM CUENTA + WHERE NUMCUENTA = + numCuenta + AND + NUMENTIDADB = + numEntidadB) .getInt(SALDO); }

JDBC: Clases de objetos persistentes, I


Cuenta bring() { ResultSet rs = stmnt.executeQuery( SELECT * FROM + CUENTA WHERE + NUMCUENTA = + numCuenta + AND + NUMENTIDADB = + numEntidadB);

JDBC: Clases de objetos persistentes, I


Cuenta cc = new Cuenta; cc.numCuenta = rs.getInt(NUMCUENTA); cc.saldo = rs.getInt(SALDO); cc.fechaApertura = rs.getString(FECHAAPERTURA); cc.pEntidadB = new pEntidadB(rs.getInt( NUMENTIDADB)); ... };

También podría gustarte