Академический Документы
Профессиональный Документы
Культура Документы
Qu es JDBC?
JDBC es el acrnimo de Java Database Connectivity, una API que permite la
ejecucin de operaciones sobre bases de datos desde el lenguaje de
programacin JAVA, independientemente del sistema operativo donde se
ejecute o de la base de datos a la cual se accede utilizando el lenguaje SQL del
mldelo de base de datos que se utilice.
Est conformada por diversas clases e interfaces ubicadas en el paquete
java.sql.
La necesidad de una librera
Al trabajar con JDBC resulta necesario agregar un jar al proyecto que contiene
las clases necesarias que se utilizan para dialogar con un DBMS. Cada DBMS
tiene su propio archivo jar. Estos archivos se pueden obtener de:
http://developers.sun.com/product/jdbc/drivers
Tambin es posible conseguir estos archivos .jar en la pgina web
correspondiente a cada DBMS, por ejemplo, en caso de usar DMBS Oracle es
posible buscarlo en la pgina de Oracle: www.oracle.com. En nuestro caso
vamos a usar el jar de MySQL, el MySQL connector y lo podemos descargar
desde ac:
http://www.mysql.com/downloads/connector/j/
Dentro del zip que se descarga se encuentra el jar.
Conexin con la base de datos
La interfaz Connection
Para poder trabajar con una base de datos, el punto de partida siempre es
conseguir una conexin, es decir un objeto de tipo Connection (este objeto
pertenece a una clase que implementa la interfaz Connection).
obtenerla.
package ar.com.et3.lab8.ejercicio1.administrador;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* @author Martin
*/
public abstract class AdministradorDeConexiones {
public AdministradorDeConexiones() {
}
public static Connection getConnection() throws Exception
{
// Establece el nombre del driver a utilizar
String dbDriver = "com.mysql.jdbc.Driver";
// Establece la conexion a utilizar contra la base de datos
String dbConnString = "jdbc:mysql://localhost/6to_ET3";
// Establece el usuario de la base de datos
String dbUser = "root";
// Establece la contrasea de la base de datos
String dbPassword = "";
// Establece el driver de conexin
Class.forName(dbDriver).newInstance();
// Retorna la conexin
return DriverManager.getConnection(dbConnString, dbUser, dbPassword);
}
laConexion.close();
El mtodo execute()
El mtodo execute() es el mismo presentado en la seccin Insercion.
Transacciones
Que es un DAO?
Cuando se pretende modelar con objetos de un modelo de datos, es decir las
tablas y sus relaciones, es muy comn utilizar una propuesta simple que
consiste en armar una clase por cada tabla existente.
Dicha clase tendr los mtodos de acceso a la tabla correspondiente, entre
ellos la insercin, modificacin y la eliminacin. Este tipo de clases suelen
conocerse como DAOs, ya que objetos de esta clase se utilizaran para realizar
operaciones de datos.
De esta forma, si existe la tabla autos, es posible construir una clase
denominada Auto, que siguiendo la especificacin de un DAO, se debera tener
los mtodos insertar, modificar, eliminar y mtodos con las consultas que
resulten necesarias.
Qu es una transaccin?
Una transaccin en SQL es una coleccin de sentencias DML que forman una
unidad lgica de trabajo o procesamiento, con propiedades bien definidas. De
esta manera ser un conjunto de operaciones sobre los datos en una base de
datos que o se ejecuta entera o no se ejecuta ninguna de sus sentencias.
JDBC permite que las declaraciones de SQL sean agrupadas juntas en una
sola transaccin. De esta manera, es posible asegurar la atomicidad y
consistencia de datos, usando caractersticas transaccionales de JDBC.
El mtodo setAutoCommit()
El control de la transaccin es realizado por el objeto de la conexin. Cuando se
crea una conexin, por defecto est en el modo activado. Esto significa que
cada declaracin individual de SQL es tratada como transaccin por s
mismo, y ser comprometida tan pronto como finalice la ejecucin.
El mtodo setAutoCommit es el encargado de establecer si se trabajara
agrupando varias sentencias en una transaccin, o por el contrario cada
sentencia SQL ser una transaccin independiente.
Para trabajar con varias sentencias SQL y ejecutarlas como una transaccin es
El mtodo commit
Cuanto el auto-commit est en false, para poder comprometer o impactar los
cambios en la base de datos, es necesario llamar al mtodo commit(). Si no se
llama al mtodo commit(), los cambios no sern reflejados en la base de datos
aun cuando se hayan ejecutadas una o ms sentencias SQL.
El mtodo commit() pertenece a la conexin, y la forma de invocarlo es la
siguiente:
unaConexion.commit();
El mtodo rollback()
Si en algn punto antes de invocar el mtodo commit(), el mtodo rollback() es
invocado, todas las sentencias que se hayan ejecutado quedaran sin efecto, es
decir que el rollback() vuelve atrs todos los cambios realizados sobre los datos
desde el ultimo commit() realizado.
El mtodo rollback() tambin pertenece a la conexin, y la forma de invocarlo
es la siguiente:
una Conexin.rollback()
Utilizacin de transacciones
// Declara la conexin
Connection conn = null;
//Declara los alumnos a insertar
Alumno a1 = new Alumno(Juan);
Alumno a2 = new Alumno(Pedro);
Alumno a3 = new Alumno(Mario);
try{
// Define la conexin
conn = AdministradorDeConexiones.getConnection();