Está en la página 1de 9

NOTA DE CLASE GUI-JAVA Conexin a Base de Datos

JDBC Java Database Connectivity


Es 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 dialecto
SQL del modelo de base de datos que se utilice.

El API JDBC se presenta como una coleccin de interfaces Java y mtodos de gestin de manejadores de conexin hacia
cada modelo especfico de base de datos. Un manejador de conexiones hacia un modelo de base de datos en particular
es un conjunto de clases que implementan las interfaces Java y que utilizan los mtodos de registro para declarar los tipos
de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta
su programa junto con la biblioteca de conexin apropiada al modelo de su base de datos, y accede a ella estableciendo
una conexin; para ello provee el localizador a la base de datos y los parmetros de conexin especficos. A partir de all
puede realizar cualquier tipo de tarea con la base de datos a la que tenga permiso: consulta, actualizacin, creacin,
modificacin y borrado de tablas, ejecucin de procedimientos almacenados en la base de datos, etc.
JDBC extiende lo que puede hacerse con Java. Por ejemplo, con Java y la API de JDBC, es posible publicar una pgina web
que usa informacin obtenida de una base de datos remota. O una compaa puede usar JDBC para conectar todos sus
empleados (incluso si estos estn usando un conglomerado de mquinas Windows, Macintosh y UNX) a una o ms bases
de datos internas va una intranet. De una forma simple, JDBC posibilita hacer tres cosas: Establecer una conexin con
una base de datos Enviar sentencias SQL Procesar los resultados

Controladores JDBC

Tipos de controladores (Drivers) de JDBC Java puede acceder a la base de datos mediante un driver o controlador JDBC
apropiado que pueda utilizar las clases que permiten el acceso a la base de datos. Existen diversos tipos de drivers, que
utilizan distintos protocolos. En particular, en esta asignatura se utilizar el llamado Puente JDBC-ODBC, que se explicar
ms adelante. 8.1.4.2. Cmo obtener los Drivers de JDBC Para conseguir la informacin actualizada sobre drivers, acceder
a la pgina web sobre drivers para JDBC de Sun, donde se mantiene un registro actualizado de vendedores de drivers:
http://industry.java.sun.com/products/jdbc/drivers

DBC ofrece el paquete jaca.sql, en el que existen clases muy tiles para trabajar con bases de datos.

Clase Descripcin

DriverManager Para cargar un driver


Connection Para establecer conexiones con las bases de datos
Statement Para ejecutar sentecias SQL y enviarlas a las BBDD
PreparedStatement La ruta de ejecucin est predeterminada en el servidor de base de datos le permite ser
ejecutado varias veces
Resulset Para almacenar el resultado de la consulta
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity
Statement
Encapsula las instrucciones SQL a la BD

Se crea a partir de la conexin instruccion = conexion.createStatement();

Mtodos
executeQuery(String sql) Ejecucin de consultas: SELECT Devuelve un objeto ResultSet

executeUpdate(String sql) Modificaciones en la BD: INSERT, UPDATE, DELETE Devuelve el nmero de columnas afectadas

execute(String sql) Ejecucin de instrucciones que pueden devolver varios conjuntos de resultados Requiere usar luego
getResultSet() o getUpdateCount() para recuperar los resultados, y getMoreResults() para ver los siguientes resultados

Ejemplo Clase Conexin A


Atributos

private static String servidor : Aqu colocaremos la ruta de nuestra base de datos;
private static Strinf user: Aqu colocaremos el nombre de usuario mySql;
private static String pass. Aqu colocaremos la clave de acceso de usuario a mySql;
private static String driver: Aqu colocaremos muestra librera mySql;
private static Connection conexion; Creamos un objeto de clase Connection para la conexin para la conexin;

En el constructor levantaremos la conexin y la obtendremos, para ello seguiremos 2 sencillos pasos:

1. Levantar el driver.
2. Establecer la conexin.

Bien, con el mtodo esttico de la clase "class" levanto el driver que le paso por argumentos:
Class.forName(driver);
Con el objeto Conecction obtengo la conexin por medio del mtodo esttico getConnection de la clase DriverManager,
pasndole por argumentos el servidor, el usuario y el pass:
conexion=DriverManager.getConnection(servidor,user,pass);
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity
Finalmente creamos un mtodo para obtener el objeto de la clase Connection con la conexin establecida:

Aqu os dejo la clase entera.

Bien, esta clase establece la conexin, ahora vamos a crear otra clase que se encargue de:
Insertar valores
Seleccionar valores
Borrar valores
Modificar valores
Nuestra clase tendr 5 atributos:
1. Un objeto de la clase escaner para leer desde teclado.
2. Un objeto Connection para obtener la conexin a la base de datos.
3. Un objeto tipo String para el nombre.
4. Un objeto de tipo String para el departamento.
5. Una variable de tipo int para las opciones del men.
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity

Bueno, ahora crearemos una sentencia condicional switch, dentro de un bucle do/while, para que vaya dndonos las
opciones que queramos realizar hasta salir de la aplicacin, y todo esto, dentro del mtodo MAIN:

Bueno, aqu podis ver las opciones que tendr nuestro men:

Insertar
Modificar
Eliminar
Mostrar
Salir
En el blucle do/while establecemos que no se saldr del men hasta que la opcin 5 sea elegida. Ahora vamos a ir
explicando los mtodos realizados para completar todas las funciones del men:

INSERTAR:
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity

Por pasos:
Cargamos nuestra conexin.
conexion=new Conexion();
Pasamos al objeto Connection de esta clase la conexin de la clase "Conexion" por medio de nuestro
mtodo getConnection():
Connection con=conexion.getConnection();
Creamos un objeto de la clase Statement, la cual ser la encargada de procesar la sentencia sqlque le
pasemos e interactuar con nuestra base de datos.
Statement st;
Pedimos los datos por pantalla y por medio del objeto teclado de la clase Scanner, leemos los datos que
deseemos agregar. Una cosa antes de continuar, es que, aunque mi tabla consta de 3 campos, yo tengo establecido el
primero (ID) como primary key, y he establecido que se auto-incremente, por lo tanto no tengo que introducirselo.
Una vez introducido los datos, creamos la sentencia sql para insertarlos en nuestra base de datos.
String sql="insert into empleados(nombre,departamento) values
('"+nombre+"','+departamento+"')";
Hay que darse cuenta que los "values" que le pasamos han de estar entre comillas simples ''.
Establecemos la comunicacin entre nuestra aplicacin java y la base de datos:
st=con.createStatement();
Le indicamos que ejecute la actualizacin de la tabla y le pasamos por argumentos nuestra sentenciasql:
st.executeUpdate(sql);
Cerramos las conexiones, en orden inverso a su apertura:
st.close();
con.close();
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity
Con esto ya podremos insertar filas en nuestra base de datos.

Modificar:

Por pasos:
Cargamos nuestra conexin.
conexion=new Conexion();
Pasamos al objeto Connection de esta clase la conexin de la clase "Conexion" por medio de nuestro
mtodo getConnection():
Connection con=conexion.getConnection();
Creamos un objeto de la clase Statement, la cual ser la encargada de procesar la sentencia sql que le
pasemos e interactuar con nuestra base de datos.
Statement st;
Pedimos por teclado el nmero de ID del registro a modificar y se lo asignamos a una variable tipo int
llamada "n", posteriormente volvemos a pedir el nombre y el departamento para modificarlos.
Creamos nuestra sentencia sql:
String sql="update empleados set nombre='"+nombre+"', departamento='"+departamento+"'
where id="+n;
Establecemos la comunicacin entre nuestra aplicacin java y la base de datos:
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity
st=con.createStatement();
Le indicamos que ejecute la actualizacin de la tabla y le pasamos por argumentos nuestra sentencia sql:
st.executeUpdate(sql);
Cerramos las conexiones, en orden inverso a su apertura:
st.close();
con.close();
Esta vez le he puesto una sentencia "if" para que me avise de si se modifico con xito o no. Con esto podremos modificar
nuestros registros.

Eliminar:

Lo mismo que anteriormente:


Cargamos nuestra conexin.
conexion=new Conexion();
Pasamos al objeto Connection de esta clase la conexin de la clase "Conexion" por medio de nuestro
mtodo getConnection():
Connection con=conexion.getConnection();
Creamos un objeto de la clase Statement, la cual ser la encargada de procesar la sentencia sql que le
pasemos e interactuar con nuestra base de datos.
Statement st;
Introducimos por teclado el registro a eliminar.
Creamos nuestra sentencia sql:
String sql="delete from empleados where id="+n;
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity
Establecemos la comunicacin entre nuestra aplicacin java y la base de datos:
st=con.createStatement();
Le indicamos que ejecute la actualizacin de la tabla y le pasamos por argumentos nuestra sentencia sql:
st.executeUpdate(sql);
Cerramos las conexiones, en orden inverso a su apertura:
st.close();
con.close();

Llegados a este punto, ya te deberas de dar cuenta de que lo nico que cambio es la sentencia sql, el resto es
uncopy/paste, para que veas que no es tan complicado como parece.

Mostrar:

Esta vara un poco con respecto a las otras:


Cargamos nuestra conexin.
conexion=new Conexion();
Pasamos al objeto Connection de esta clase la conexin de la clase "Conexion" por medio de nuestro
mtodo getConnection():
Connection con=conexion.getConnection();
Creamos un objeto de la clase Statement, la cual ser la encargada de procesar la sentencia sql que le
pasemos e interactuar con nuestra base de datos.
Statement st;
NOTA DE CLASE GUI-JAVA Conexin a Base de Datos
JDBC Java Database Connectivity
Creamos un objeto de la clase ResultSet que ser la encargada de devolvernos los resultados de los
registros:
ResultSet rs;
Creamos nuestra sentencia sql:
String sql="select * from empleados";
Establecemos la comunicacin entre nuestra aplicacin java y la base de datos:
st=con.createStatement();
Le pasamos al objeto de ResultSet el resultado de ejecutar la sentencia sql:
rs=st.executeQuery(sql);
En este caso no actualizamos la tabla (executeUpdate()), sino que realizamos una
consulta (executeQuery());
Por medio de un bucle while vamos recorriendo valores mientras existan (rs.next()) y por medio de los
mtodos getInt y getString obtenemos los valores de las diferentes columnas, tened en cuenta de que le tenemos que
pasar el nmero de columna:
while (rs.next){
System.out.println("ID:"+rs.getInt(1));
System.out.println("Nombre: "+rs.getString(2));
System.out.println("Departamento: "+rs.getString(3));
System.out.println("**************************");
}
Cerramos las conexiones, en orden inverso a su apertura:
rs.close();
st.close();
con.close();
Bien, con esto doy por terminada la entrada, mencionar que esto es algo muy bsico del JDBC pero suficiente para empezar
a explorarlo. Un saludo a todos.

También podría gustarte