Exercicis proposats
Tot seguit hi ha un conjunt d'exercicis proposats per practicar els coneixements adquirits en aquesta unitat. Són opcionals, però es recomana completar-los per assimilar millor els conceptes. Us ajudaran a preparar la pràctica d'aquesta unitat.
1. PostgreSQL
Pel teu compte, instal·la i prova una connexió amb el SGBD PostgreSQL. Fes captures de pantalla de cada pas i crea una presentació explicant si has tingut algun punt difícil.
Treball recomanat:
- Instal·la un contenidor Docker amb PostgreSQL. PostgreSQL escolta al port 5432; crea una redirecció de ports des del port 2345 de la teva màquina cap al contenidor Docker.
- Instal·la DBeaver (programari de codi obert per connectar-te a gairebé tots els SGBD). Crea una connexió al contenidor PostgreSQL.
- Crea un programa Java que es connecti al teu contenidor, afegint el driver JDBC corresponent i comprovant la connexió.
2. SQLite - Login
SQLite és especial perquè no és un SGBD tradicional. SQLite és una base de dades integrada (embedded), ja que tota la base de dades (dades i estructura) es guarda dins d'un únic fitxer. Aquest fitxer es pot emmagatzemar dins dels nostres projectes, i és per això que es diu "embedded": la base de dades està dins del nostre paquet o la nostra app Android, etc. És la manera ideal d'emmagatzemar poca informació a les nostres petites aplicacions.
Warning
El principal inconvenient de SQLite és la seguretat, ja que no ofereix un sistema d'autenticació. Cal protegir el fitxer de la base de dades amb les mesures de seguretat del sistema.
Fes aquests passos prenent captures de pantalla de cada punt important:
- Instal·la SQLite, versió 3. Pots instal·lar SQLite des dels repositoris de Linux o descomprimint un paquet de programes a Windows. Cal afegir la carpeta d'aquests programes al PATH del sistema per poder executar-los des de qualsevol lloc.
- Crea una base de dades buida. La sintaxi és
sqlite3 newDB.sqlite. Un cop creada la base de dades apareix l'indicador de sqlite i ja pots treballar. Les ordres especials de sqlite comencen amb un punt (.). Les pots llistar amb.help. - Crea una nova taula, executant per exemple:
- Insereix algunes files:
insert into student values(,,) - Selecciona les files que has inserit.
- Surt de sqlite (
.quit) - Crea un fitxer de script amb una nova taula i algunes insercions, i desa'l a la mateixa carpeta que la base de dades amb la qual estàs treballant (per exemple, teachers).
- Torna a entrar a la base de dades i prova les ordres
.shell ls,.read,.tablesi.schema.
3. Procés d'Login
Gairebé totes les aplicacions (web, mòbils o escriptori) realitzen una tasca d'inici de sessió abans de concedir accés als recursos. Anem a fer una finestra d'inici de sessió i registre.
Ací tens un projecte iniciat tot en blanc per a completar-lo. Quan l'executis, es mostrarà aquesta finestra:
L'usuari ara introduirà la seva informació, i podria passar que el USER fos incorrecte, i llavors:
o podria passar que el PASS fos incorrecte, i llavors:
o ambdós són correctes, i l'aplicació diu:
Si l'usuari prem Alta nuevo usuario, les dades emmagatzemades a les caixes s'insereixen a la base de dades.
3.1. La base de dades SQLite
Crea una base de dades buida en SQLite amb una única taula USERS que contingui els camps username i password. El camp password ha de ser una cadena de 40 caràcters:
Quan emmagatzemem contrasenyes en fitxers i en bases de dades, és obligatori guardar-les xifrades. Tens la classe Xifrar.java, que et permet xifrar contrasenyes.
4. Preguntar per actualitzar i esborrar files
Crea un programa Java per a:
- Seleccionar una taula sencera d'una base de dades per la teva compte (taula i base de dades).
- El programa mostrarà fila per fila, i preguntarà a l'usuari què vol fer:
- Editar (e): el programa preguntarà la columna (número) i el valor a actualitzar contínuament. Quan s'introdueixi 0, el programa actualitzarà la fila i després continuarà mostrant les files.
- Esborrar (d): el programa farà la pregunta clàssica, Estàs segur que vols esborrar (s/n)? i farà el que digui l'usuari.
- Quan s'hagin mostrat totes les files, el programa preguntarà si es vol afegir una fila, i després preguntarà per tots els valors de les columnes i els desarà.