Está en la página 1de 57

ACCESO A BASE DE DATOS DE CON JAVA

Presentado por TSU: Luis Manuel Luna Botello

CONTENIDO
Introduccin al tema ( 1 diapositiva) Un recorrido general por el leguaje Java ( 7 diapositivas) Introduccin a SQL ( 1 diapositiva) Panorama general sobre bases de datos ( 3 diapositivas) Conexin a base de datos con Java ( 30 diapositivas) Ventajas y desventajas (2 diapositivas) SQLite Ejemplo (8 diapositivas)

INTRODUCCIN

Hoy en da muchas de las empresas, organizaciones, o pequeos negocios necesitan guardar informacin y tenerla a disposicin cuando se le necesite, y hacer esto de manera manual suele ser masivamente tedioso y desgastante. Es por eso que la creacin de aplicaciones que puedan manipular datos en una base de datos, se a convertido en una forma de agilizar y hacer mucho mas fcil el manejo de informacin.

JAVA

Java es un lenguaje de programacin introducido por Sun Microsystem cuyas caractersticas lo sitan, junto a Microsoft C# (C Sharp). Ambos lenguajes de programacin son orientados a objetos, en los cuales existe la herencia, que hace mas fcil la programacin de aplicaciones y cdigos reutilizables.

JAVA

Este lenguaje de programacin de hiso muy popular debido a la gran facilidad para construir aplicaciones robustas, sin la necesidad de ocupar una gran cantidad de espacio en disco, lo que lo convirti en el lenguaje ideal para crear aplicaciones para internet, adems de tambin ser independiente de la plataforma.

JAVA

Esto gracias a la JVM (Java Virtual Machine, la maquina virtual de Java), que le da esa capacidad de ser independiente de la plataforma y funcionar en diferentes Sistemas Operativos (Windows, Linux, Mac, etc.). Tambin gracias a la JVM, no hay necesidad de que las aplicaciones Java tengan todo el cdigo maquina necesario para ejecutarse. Por el contrario una aplicacin Java al compilarse solo genera archivos bytecodes Que son interpretados por la JVM y esta ejecuta la aplicacin.

JAVA

Por ejemplo una aplicacin grafica en C++ ocupa de DDLs (todo el cdigo maquina), mas el cdigo fuente con el que se programo para poder ejecutarse en Windows, lo que vendra a ocupar alrededor de 5MB. Los que por el contrario, una aplicacin grafica en Java viene a ocupar tal ves unos 500 KB, porque todo el cdigo maquina para ejecutar la aplicacin ya esta instalado en la PC y ya no es necesario que vaya empaquetado junto con la aplicacin.

ENTORNO DE DESARROLLO DE JAVA

Para poder desarrollar aplicaciones en Java es necesario tener instalado el JDK (Java Development Kit), Que incluye un conjunto de programas y libreras que permiten desarrollar, compilar y ejecutar programas en Java. existen diferentes versiones de Java para desarrollar aplicaciones empresariales, aplicaciones como mas personales y aplicaciones para dispositivos moviles.

ENTORNO DE DESARROLLO DE JAVA

ENTORNO DE DESARROLLO DE JAVA

El J2SE proporciona la base para desarrollar y distribuir aplicaciones que podrn ejecutarse en un servidor o en un ordenador personal con distintos sistemas operativos.

Este entorno de desarrollo incluye las libreras AWT, SWING y SQL que permiten crear aplicaciones graficas con acceso a bases de datos.

SQL (STRUCTURE QUERY LANGUAGE)

Es un lenguaje estndar para interactuar con bases de datos relacionales y es soportado prcticamente por todos los sistemas administradores de bases de datos actuales.

SQL incluye operaciones de definicin como CREATE, al igual que operaciones de manipulacin de datos como INSERT, UPDATE, SELECT y DELETE.

QUE ES UNA BASE DE DATOS?

Es una coleccin de datos clasificados y estructurados que son guardados en uno o varios ficheros pero referenciados como si fuera un nico fichero se tratara.

Los datos de una base de datos relacional se almacenan en tablas lgicamente relacionadas entre si utilizando campos claves comunes, a su ves cada tabla dispone de datos en filas y columnas.

QUE ES UNA TABLA DE BASE DE DATOS?

Es una coleccin de datos presentados en forma de matriz bidimensional, que esta conformada por columnas y filas, donde las filas reciben el nombre de registros y las columnas de campos.

OPERACIONES BSICAS SOBRE BASE DE


DATOS

Los usuarios de un sistema administrador de bases de datos pueden realizar sobre una determinada base de datos operaciones tales como:

Insertar Recuperar Modificar Eliminar Buscar

FUNDAMENTOS PARA ESTABLECER UNA


CONEXIN CON UNA BASE DE DATOS

JAVA proporciona una API(Application Programming Interface) llamada JDBC (Java DataBase Connectivity) para poder hacer conexiones con bases de datos relacionales a travs de un controlador especifico para acceder a una base de datos especifica (MySQL, SQL, PostgreSQL, etc.) y poder ejecutar instrucciones SQL desde la aplicacin Java.

JDBC (JAVA DATABASE CONNECTIVITY)

Esta API proporciona un conjunto de clases que permite ejecutar instrucciones SQL para manipular y gestionar bases de datos relacionales. Pero previamente a que un aplicacin java pueda hacer operaciones sobre una base de datos, debe de existir una conexin entre la aplicacin Java y la base de datos a manipular con esta aplicacin.

CONTROLADORES

La conexin entre la aplicacin Java y la base de datos se hace a travs de un controlador (driver). La funcin de este controlador es traducir los mensajes de bajo nivel del sistema base de datos a mensajes de bajo nivel de la API JDBC y viceversa.

CONTROLADORES

Fabricantes particulares proporcionan controladores (drivers) especficos para acceder a sus sistemas de bases de datos.

PAQUETE JDBC

El API JDBC se proporciona en el paquete java.sql incluido en el JDK(Java Development Kit) J2SE(Java 2 Platform Estndar Edition). Este paquete contienen las interfaces y clases Java fundamentales de JDBC, entre ellas cabe destacar: Driver: permite conectarse a una base de datos. Cada sistema administrador de bases de datos requiere un controlador (Driver) especifico.

PAQUETE JDBC

DriverManager: Permite gestionar todos los controladores instalados en la maquina virtual de java. Connection: representa una conexin con una base de datos. Statement: Permite ejecutar instrucciones SQL.

PAQUETE JDBC

ResultSet: Conjunto de resultados. Contiene las filas obtenidas al ejecutar una sentencia SELECT. ResultSetMetaData: Permite obtener informacin sobre un ResultSet, por ejemplo el numero de columnas, sus nombres, tipos, etc.

PAQUETE JDBC

De estas clases, cualquier aplicacin Java utilizara casi siempre estas cuatro: DriverManager utilizada para crear un objeto Connection, objeto que ser utilizado para crear un objeto Statement, que a su ves ser utilizado para crear un objeto ResultSet.

DIAGRAMA: CONEXIN CON BASE DE DATOS

Aplicacin Java JDBC Controlador (Driver) Base de Datos

CONECTAR CON LA FUENTES DE DATOS

La clase DriverManager contiene el mtodo getConnection( argumento URL ) que devuelve un objeto de tipo Connection y es a partir de este mtodo que se crea este tipo de objeto.

Una ves registrado el controlador JDBC


Class.forName("org.sqlite.JDBC");

CONECTAR CON LA FUENTES DE DATOS

Se solicita a DriverManager que proporcione una conexin con una base de datos, en este caso se har con SQLite. Objeto Connection = DriverManager.getConnection("jdbc:sqlite:ruta\MiB D.db")

CONECTAR CON LA FUENTES DE DATOS


Si DriverManager no encuentra el controlador de acuerdo al URL especificado, genera una excepcin de tipo SQLException, que se captura con: try{ cdigo que puede generar una excepcin }catch(SQLException e){

Mensaje con el error que se capturo en e

CONECTAR CON LA FUENTES DE DATOS

Pero como sabr DriverManager el controlador que tiene que utilizar? Cada controlador utiliza un URL de acuerdo con el protocolo JDBC. Por ejemplo: Para SQLite; DriverManager.getConnection("jdbc:sqlite:ruta\MiBD.db" ) Para MySQL; DriverManager.getConnection("jdbc:mysql://servidor/sMi BD",usuario,password);

CONECTAR CON LA FUENTES DE DATOS

Para SQL; DriverManager.getConnection("jdbc:odbc:nombre origen de datos , usuario, contrasea) En este caso se le agrega ODBC(Open Database Connectivity) al URL, porque se usa el ODBC que viene por default en S.O. Windows para crear un origen de base de datos y utilizarlo como puente para acceder a los datos de la base de datos.

CONECTAR CON LA FUENTES DE DATOS

Una ves que ya se tiene la conexin guardada en un objeto de la clase Connection, se utiliza la clase Statement para crear otro objeto que nos permita ejecutar las instrucciones SQL, y que a su vez, y como se menciono anteriormente, este objeto nos servir para crear un objeto ResultSet, que nos servir para recuperar informacin de la base de datos.

CONECTAR CON LA FUENTES DE DATOS

El objeto Statement sigue la siguiente estructura para poder crearse. Objeto Statement = Objeto Connection. createStatement(); La clase Connection incluye el mtodo createStatement que sirve para crear el objeto que permitir ejecutar las instrucciones SQL.

CONECTAR CON LA FUENTES DE DATOS

A su ves la clase Statement contiene los mtodos executeQuery( argumento Instruccin SQL ) que sirve para ejecutar sentencias SELECT y retorna un ResultSet con los resultados que arroje la consulta, es entonces a partir de este mtodo que se crea un objeto ResultSet, por ejemplo:

Objeto Resulset = Objeto Statement.executeQuery(SELCT * FROM MiTabla);

CONECTAR CON LA FUENTES DE DATOS

executeUpdate( argumento Instruccin SQL ), este mtodo nos sirve bsicamente para ejecutar sentencias SQL como INSERT, UPDATE y DELETE, por lo que este mtodo no tiene ningn tipo de retorno. Por ejemplo: Objeto Statement.excuteUpdate(DELETE FROM Alumnos WHERE ID_Alumno = 1);

RECUPERAR DATOS DE LA BASE DE DATOS

Como se menciono anteriormente, para recuperar datos de una base de datos, enviaremos la sentencia SELECT como argumento del mtodo excuteQuery de la clase Statement, este metodo nos va a devolver las filas que arroje el SELECT encapsulados en un objeto ResultSet.

RECUPERAR DATOS DE LA BASE DE DATOS

Una ves que tenemos cargado el objeto ResultSet con filas, podemos movernos entre ellas con los siguientes mtodos que proporciona esta clase:

beforFirst(): Mover el cursor antes de la primera fila. first(): mover el cursor a la primera fila. last(): mover el cursor a la ultima fila. afterLast(): mover el cursor despus de la ultima fila.

RECUPERAR DATOS DE LA BASE DE DATOS


previous(): mover el cursor a la fila anterior. next(): mover el cursor a la fila siguiente. absolute(fila): mover el cursor a la fila especifica. relative(n): mover el cursor n filas a partir de la actual (n puede ser un numero entero positivo o negativo).

Todos estos mtodos devuelven true o false para indicar si se pudo hacer el movimiento.

RECUPERAR DATOS DE LA BASE DE DATOS

Para obtener los datos de la fila donde esta el cursor, la interfaz ResultSet tambin proporciona varios mtodos, algunos de ellos y bsicamente los mas utilizados son:

getString(String): recupera el dato de la columna especificada por String. getString(int): recupera el dato de la columna indicada por el ndice especificado.

RECUPERAR DATOS DE LA BASE DE DATOS

Existen algunos mtodos anlogos a los anteriores que son utilizados cuando se sabe que el dato de la columna de la fila actual es entero o real, por ejemplo: getInt, getLong, getFloat y getDouble.

RECUPERAR DATOS DE LA BASE DE DATOS

Otro de los mtodos interesantes de la interfaz ResultSet es el mtodo getMetaData el cual devuelve un objeto de tipo ResultSetMetaData, donde este ultimo es otra interfaz que nos sirve para obtener metadatos, entendiendo esto como datos sobre los datos, es decir, podemos obtener informacin tal como, el nombre de las columnas, el numero de columnas, entre otros. de un ResultSet.

RECUPERAR DATOS DE LA BASE DE DATOS

Algunos de los mtodos a mencionar de la interfaz ResultSetMetaData son: getColumnCount(): Devuelve el numero de columnas que tiene el conjunto de resultados guardado en un ResultSet. getColumnName(int posicin): Devuelve el nombre de la columna, de acuerdo a la posicin indicada.

NAVEGAR POR LA BASE DE DATOS

Hemos visto anteriormente que una vez obtenido un conjunto de resultados, podemos utilizar los mtodos proporcionados por la interfaz ResultSet para movernos por dicho conjunto.

Para ello debemos conocer que un objeto ResultSet, por omisin y dependiendo del sistema administrador de bases de datos, no es actualizable y tiene un cursor que solo se mueve hacia adelante.

NAVEGAR POR LA BASE DE DATOS

No obstante, es posible crear objetos ResultSet actualizables y que permitan moverse hacia atrs o adelante. Para poder hacer esto, se necesita mandarle 2 argumentos al mtodo createStatement de la clase Statement, a la hora de crear este tipo de objeto.

NAVEGAR POR LA BASE DE DATOS

Estos argumentos son constantes enteras definidas en la interfaz ResultSet, los argumentos son: TYPE_SCROLL_INSENSITIVE. Crea un conjunto de resultados en el que el cursor se puede mover en ambas direcciones (desplazable). CONCUR_UPDATABLE. Indica que la hoja de resultados es actualizable.

NAVEGAR POR LA BASE DE DATOS

Quedando de la siguiente forma la creacin del Statement: Objeto Statement = objeto Connection.createStatement(ResulSet.TYPE_SCR OLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

CERRAR OBJETOS.

Entra dentro de practicas buenas de programacin, cerrar los objetos Statement, ResultSet y Connection una ves que ya no sern usados, por ejemplo cuando se cierre la aplicacin Java o cuando se termine de usar un ResultSet. Cada una de estas clases contiene un mtodo para hacer dicho proceso, el mtodo se llama close(), fcil de usar, por ejemplo: nombreObjeto.close();

EN RESUMEN PARA CREAR UNA CONEXIN A


BASE DE DATOS CON JAVA Registrar el ODBC. Direccionar el controlador con DriverManager. Registrar la conexin con Connection. Crear un objeto Statement para poder ejecutar instrucciones SQL. Utilizar Resultset y ResultSetMetaData para recuperar informacin de la base de datos. Cerrar objetos.

VENTAJAS DE CREAR APLICACIONES QUE


MANIPULEN BASES DE DATOS El usuario no tiene que tener conocimientos sobre el manejo de bases de datos, para poder manipular esta. En caso de que el usuario tenga conocimientos sobre el manejo de bases de datos y SQL, no tiene que estar escribiendo instrucciones cada de que quiera hacer una operacin. Facilita el manejo de la base de datos, y las operaciones se hacen con tan solo pedrselo (dar click sobre un botn) a la aplicacin en poco tiempo y fcil.

DESVENTAJAS DE CREAR APLICACIONES QUE


MANIPULEN BASES DE DATOS Solo se limita a manipular la base de datos con las operaciones para que la aplicacin fue diseada y puede realizar. Si la aplicacin no esta bien diseada puede afectar la integridad de los datos de la base de datos. Dependiendo del tamao de la base de datos, la programacin de la aplicacin que la controle, puede tardar semanas, meses o incluso aos para construirse. Puede que cueste demasiado dinero programar la aplicacin.

EJEMPLO: DESCRIPCIN DEL ESCENARIO

Se ha hablado que para cualquier base de datos las operaciones que siempre se harn son insertar, actualizar, borrar, recuperar, buscar y navegar. Entonces cualquier aplicacin con acceso a base de datos al menos debe de poder hacer esas 6 operaciones bsicas.

EJEMPLO: DESCRIPCIN DEL ESCENARIO

La aplicacin que se les expondr tiene la capacidad de hacer todas esas operaciones, adems de que viene a representar la parte practica lo que se expuso sobre acceso a base de datos en diapositivas anteriores.

EJEMPLO: DESCRIPCIN DEL ESCENARIO

La aplicacin solamente es una ventana, para que el usuario interactu con ella y pueda desencadenar las diferentes operaciones. Esta aplicacin manipula una base de datos llamada SQLite_TSU_Ejemplo con solo una tabla llamada Personas que sigue la siguiente estructura:

ID

Nombre

Apellido_Pat erno

Apellido_Mat erno

EJEMPLO: DESCRIPCIN DE LOS COMPONENTES JAVA

La aplicacin que se construyo tiene los siguientes componentes, que se encuentran en el paquete javax.Swing: JFrame; ventana principal. JPanel; contenedor. JTable; para mostrar los registros. JButton; accionar las diferentes operaciones. JToolbar; para acomodar los botones. DefaultTableModel; para controlar la tabla. JTextField; para capturar informacin. JLabel; mostrar textos. JOptionPane; para mandar mensajes. Border; para pintar los bordes en los paneles, con un texto. JScrollPane; para desplazarse por los registros de la tabla cuando estos sean demasiados y ya no puedan visualizarse todos. Interfaces, actionListener y keyListener; para darle la capacidad de escuchar eventos a los botones y cajas de texto.

EJEMPLO: CLASES DE LA APLICACIN


Cat_Persona; contiene la interfaz de usuario ConsultasSQL_Cat_Persona; contiene todas las instrucciones SQL para cubrir con las operaciones. ConexionBD; crea la conexin con la base de datos MainClass; contiene el Main para poder ejecutar la aplicacin.

EJEMPLO: INTERFAZ DE USUARIO

EJEMPLO: DEMOSTRACIN

Llevar la parte terica a la practica.

SECCIN DE PREGUNTAS Y RESPUESTAS

Alguien tiene alguna pregunta?

CONCLUSIN

El desarrollo de aplicaciones para la manipulacin de bases de datos cambios por total la perspectiva sobre el manejo de informacin, pasando de ser un trabajo tedioso y tardado al manejar esta de forma manual o por medio de herramientas no tan especializadas para tal fin, a ser un trabajo mas rpido y fcil de hacer al darle solo ordenes a la aplicacin y dejar que ella haga el trabajo pesado y los usuarios solo el trabajo ligero.