lezione jsp su come gestire una tabella relazionale con chiave esterna
DESCRIPTION
come gestire una tabella relazionale con chiave esternaTRANSCRIPT
Apr 13, 2023
Tutorial JSP database-sesta parte
Silvano Natalizi
Obiettivo della lezione
L’obiettivo di questa lezione è quello di modificare l’interfaccia grafica dell’applicativo CRUD.
In modo da gestire una chiave esterna Aggiungiamo a titolo la chiave esterna di materia
Il comando alter table
alter table titolo add materia_id int ;
Il valore della colonna materia_id è null
Per azzerare il valore della colonna materia_id :
update titolo set materia_id=0;
Naturalmente occorre successivamente aggiornare ogni riga del campo materia_id con il codice effettivo della materia nella quale si classifica il titolo
Effetto dell’operazione update
Creiamo la tabella materia
Create table materia(id int not null, nome varchar(50), primary key(id));
Popoliamo la tabella materia
Insert into materia values(1,”Poesia”);
Ora aggiorniamo a mano i titoli
Facciamo la join
Select titolo,prezzo,materia from titolo,materia
where titolo.materia_id=materia.id
Gestiamo la tabella materia da programma
Anzitutto dobbiamo gestire la tabella materia. Questa è identica alla tabella autore. Di conseguenza è sufficiente duplicare cambiando i
nomi tutti i programmi fatti per autore, e modificare soltanto il nome della tabella da autore a materia.
Inoltre bisogna stare attenti a sostituire tutta la catena dei nuovi nomi nel valore dell’attributo action in tutte le form ed in tutti i link
Gestiamo la tabella titolo con la chiave esterna materia_id
Non possiamo certo far digitare all’utente, al navigatore un codice !
La soluzione migliore è quella di presentare tutti i nomi delle materie in un menù srotolabile.
Questo menù srotolabile corrisponde ad un controllo di tipo select con tante option quante sono le materie
Naturalmente i nomi delle materia vanno letti dalla tabella materia.
Cosa deve fare il programma InserisciTitolo.jsp
Questo programma deve anzitutto leggere la tabella materia e creare con i risultati della lettura il controllo menù srotolabile.
Come possiamo procedere ?
Una possibile soluzione
Duplichiamo la pagina web inseriscititolo.html nella java server page InserisciTitoloMateria.jsp
Aggiungiamo prima della form la lettura della tabella materia
Dentro la form mettiamo il controllo <select> con le opportune <option> i cui valori sono assegnati con le istruzioni java.
Interfaccia grafica
Programma risolutivo
The End