0% encontró este documento útil (0 votos)
13 vistas2 páginas

Explicacion

Cargado por

Israel CerCas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas2 páginas

Explicacion

Cargado por

Israel CerCas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tarea 10 Programación

José Luís con este ejercicio tengo el problema que no estoy seguro si cuando se ejecute
en otro equipo funcione, porque aunque creo las tablas de la base datos desde el
programa, previamente se debe introducir el namespace, usuario y contraseña, pero no
sé si debo crear también un usuario y una contraseña a la hora de crear las tablas en
Oracle.

Bueno, pues a ver si hay suerte y funciona, los parámetros que he usado son “XE”, en
vez de localhost para Oracle, y las palabras “usuario” y “usuario” en usuario y
contraseña.

Las tablas las he creado siguiendo un modelo que está en el temario, y buscando por
internet encontré un código fácil para integrarlo en la aplicación.

- sentencia.execute("CREATE TYPE tipo_traduccion AS object (lenguaje


varchar2(20), traduccion varchar2(20)");
- sentencia.execute("CREATE TYPE tabla_traduccion AS TABLE OF
tipo_traduccion;");
- sentencia.execute("CREATE TYPE tipo_palabra As object(palabra varchar2(20),
visto INTEGER, traducciones tabla_traduccion, MEMBER FUNCTION contar
RETURN INTEGER);");
- sentencia.execute("CREATE TABLE ejercicio OF tipo_palabra (CONSTRAINT
palabra_c PRIMARY KEY (palabra), CHECK (palabra IS NOT NULL))
NESTED TABLE traducciones STORE AS traduciones_ntt;");

Estas son las sentencias usadas para crear los tipos y las tablas, en la primera creo el
tipo de objeto para traducción formado por dos cadenas lenguaje y traduccion, en la
segunda creo un tipo tabla que será la tabla anidada traducciones, que se crea en la
cuarta línea, junto a la tabla ejercicio. Esta última es la que contiene los objetos tipo
palabra creada en la tercera línea.

Creé también un método para contar las visualizaciones, pero al final me decidí por
poner un atributo más y eliminar este método, en el programa se encuentra comentado.
Con respecto a la ejecución del programa una vez que creamos la conexión con la base
de datos nos aparece un menú de cinco opciones:

- El primero es insertar el termino y sus traducciones, aquí pensé crear una clase
para los términos y meterlo todos en un arraylist, pero después deseché esa
opción teniendo en cuenta que voy a trabajar normalmente con una palabra y sus
traducciones, por lo que he usado una cadena para la palabra y un hashtable
para las traducciones y una vez finalizado pasarlo este a la bd.
- La segunda opción la puse para comprobar que realmente se iba guardando los
datos en la bd y mostraba todos los términos con sus traducciones, esta es lo que
debe hacer la tercera opción pedida en la tarea, pero para controlar los términos
que están en la bd y las visualizaciones decidí dejarla, espero que no te importe.
- En la tercera, lo primero que hice fue una búsqueda condicionada a un solo
término, que me mostrara todos los datos, una vez realizado busqué como
realizar la búsqueda por aproximación, gracias a LIKE y los %, prueba superada,
sólo quedaba aumentar el contador de visitas, he comentado en el programa un
método que hice para incrementar el atributo “visto”, pero después de estar tres
horas dando vueltas a la implementación del método…. Decidí hacer un update
sobre el SELECT de la consulta he incrementarlo directamente, ya me comentas
cual sería la mejor opción.
- La cuarta opción es el borrado del término, que después de lo anterior no tiene
mucha complicación.

He creado en el programa dos funciones auxiliares, una la ya comentada


“crear_tablas(conex)” y la de “exista(termino)” que es llamada desde insertar para
comprobar que la palabra a introducir no se encuentra en la tabla y viole las
restricciones, es una consulta de la palabra que si se obtiene algún resultado la palabra
existe… y si es cero pues no.

Pues eso es todo, espero no haber cometido demasiados errores, gracias por todo.

También podría gustarte