


El proyecto final consiste en implantar un sistema de consultas de una base de datos relacional ya definida, usando JDBC.

Se divide en dos iteraciones.

La primera iteracin consiste en realizar las consultas SQL a la base de datos, en modo no grfico

La segunda iteracin consiste en realizar las consultas SQL a la base de datos, en modo grfico, usando Swing.


Las instrucciones para el uso de la base de datos son:


1. Extraer el archivo hsqldb_1_3_3_3.zip a un directorio del disco D:


2. Del archivo proyfinal.zip; extraerlo a un directorio del disco D:

3. Editar el archivo arrancar.bat, que contiene el siguiente texto

set HSQL=C:\Documents and Settings\gusdelact\Trabajo\hsqldb
java -cp "%HSQL%\lib\hsqldb.jar" org.hsqldb.Server

y cambiar la variable HSQL por la ruta en donde se descomprimio HSQLDB.

Tambien editar el archivo consola.bat 

set HSQL=C:\Documents and Settings\gusdelact\Trabajo\hsqldb
java -cp "%HSQL%\lib\hsqldb.jar"  org.hsqldb.util.DatabaseManager

y cambiar la variable HSQL por la ruta en donde se descomprimio HSQLDB.

4. Verificar que este el archivo server.properties y que tenga contenido

5. Arrancar el servicio de base de datos, cambiandose al directorio creado en el paso 2 e invocando:
arrancar.bat

6. Arrancar la consola grafica de la base de datoscambiandose al directorio creado en el paso 2 e invocando:
consola.bat

7. A la consola, dar los siguientes parametros
Type:HSQL Database Engine Server
URL: jdbc:hsqldb:hsql://localhost/proyfinal

Introducir OK

8. Con la consola, cargar los datos al RDBMS, de la siguiente manera:

File->Open Script

Tomar, del directorio creado en el paso 2; el archivo libros.sql, que es el esquema de la base de datos.

Presionar el boton de Execute
Dart Ctrl-R, y apareceran 4 tablas.

Hacer File->Open Script

Tomar, del directorio creado en el paso 2; el archivo datos.sql, que son los datos.

Verficar que no existan errores

9. Ejercitar los queries; dand en el boton Clear de la Consola e introduciendo, los siguientes queries

SELECT authorID,firstName,lastName FROM AUTHORS
SELECT publisherid,publisherName FROM PUBLISHERS"
SELECT TITLES.ISBN, TITLES.TITLE, TITLES.EDITIONNUMBER,TITLES.COPYRIGHT,TITLES.PUBLISHERID,TITLES.PRICE,
	TITLES.IMAGEFILE FROM TITLES,AUTHORISBN WHERE AUTHORISBN.AUTHORID=1 AND TITLES.ISBN=AUTHORISBN.ISBN
SELECT TITLES.ISBN, TITLES.TITLE, TITLES.EDITIONNUMBER,TITLES.COPYRIGHT,TITLES.PRICE,TITLES.IMAGEFILE FROM TITLES WHERE 
	TITLES.PUBLISHERID=1


Cada querie hace lo siguiente:

Consulta de todos los autores
Consulta de todos las editoriales
Consulta de todos los titulos, dando un autor
Consulta de todos los titulos, dando una editorial

10. Se deben realizar las cuatro consultas, usando Java y JDBC.

El siguiente programa,muestra como realizar el primer querie

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DummyJDBC {
	
	public static void main(String[] args) {
		final  String manejador="org.hsqldb.jdbcDriver";
		final  String url="jdbc:hsqldb:hsql://localhost/proyfinal";
		final  String usuario="sa";
		final  String password="";
		final  String SQL_AUTHORS="SELECT authorID,firstName,lastName FROM AUTHORS";
		try {
		Class.forName(ConexionHSQLDB.manejador);
		Connection conexion=DriverManager.getConnection(ConexionHSQLDB.url,ConexionHSQLDB.usuario,ConexionHSQLDB.password);
		PreparedStatement sql=
			conexion.prepareStatement(SQL_AUTHORS);
		ResultSet resultado=sql.executeQuery();
		
		while (resultado.next()){
			int id=resultado.getInt(1);
			String nombre=resultado.getString(2);
			String apellido=resultado.getString(3);
			System.out.println("id="+id+",nombre="+nombre+",apellido="+apellido);
		}
		resultado.close();
		sql.close();
		conexion.close();
		} catch (ClassNotFoundException ex){
			ex.printStackTrace();
		}catch (SQLException ex){
			ex.printStackTrace();
		}
	}
}


11. En base al uso de JDBC; realizar la primera iteracin; usando como base el diagrama de clases proporcionado 

12. Una vez cocluida la iteracin 1; realizar la consulta grfica



