PDA

Visualizza la versione completa : [JAVA-MySQL] Funzione execute() e executeQuery()


BlueSmurf
26-01-2016, 13:10
Ragazzi, la prof di basi di dati ci ha fatto un esempio di traccia d'esame. Praticamente lei ci d un template (al quale ovviamente ci dobbiamo attenere) e un file PDF con le richieste per le query. Noi dobbiamo completare inserendo le query e i diversi tipi di execute (execute(), executeQuery(), executeUpdate()).

La richiesta che mi interessa la seguente

[5 punti] Creare la tabella per la relazione DettOrdini con il seguente schema
NroOrdine = stringa di 6 caratteri
NroArt = stringa di 4 caratteri
QtaOrd = intero
PrezzoRichiesto = decimale con precisione 6 e scala 2
e completa di vincoli sia intrarelazionali che interrelazionali.

Quindi ho utilizzato la seguente query

String stringa1 = "CREATE TABLE IF NOT EXISTS DettOrdini
(NroOrdine char(6) PRIMARY KEY,
NroArt char(4), QtaOrd int,
PrezzoRichiesto decimal(6.2),
FOREIGN KEY (NroOrdine) references Ordini(NroOrdine))"


Nel Template c' scritto

Statement istruzione1 = connessione.createStatement();
ok = istruzione1.execute(stringa1);

num = (ok)?1:0;

System.out.println("Il numero di righe coinvolte dal comando di creazione della tabella DettOrdini : " + num + " ");


Ho immaginato che volesse una roba del genere

boolean ok = istruzione1.execute(stringa1)

int num;

if(ok == false)
num =0;
else num = 1;

Ci sono altri modi per interpretare queste stringhe?

andbin
26-01-2016, 13:48
Statement istruzione1 = connessione.createStatement();
ok = istruzione1.execute(stringa1);

num = (ok)?1:0;

System.out.println("Il numero di righe coinvolte dal comando di creazione della tabella DettOrdini : " + num + " ");

Gi il fatto di dire un "numero di righe coinvolte" a fronte della creazione di una tabella non ha proprio senso. Poi comunque un CREATE TABLE andrebbe eseguito con executeUpdate (perlomeno quanto dice il tutorial ufficiale Oracle, Setting Up Tables (https://docs.oracle.com/javase/tutorial/jdbc/basics/tables.html)).

BlueSmurf
26-01-2016, 13:52
Eh... Lo so, ma il template questo e questo

BlueSmurf
26-01-2016, 19:03
Anche quest'altra

[QUERY] String stringa3 = "CREATE OR REPLACE VIEW LibriPubblicati_NY AS SELECT L.Titolo_libro, E.Nome_editore FROM Libri AS L JOIN Editori AS E ON L.Codice_editore = E.Codice_Editore WHERE Stato_Editore = 'NY'";

[TEMPLATE]Statement istruzione3 = connessione.createStatement();
istruzione3.execute(stringa3);

System.out.println();


Che cosa ci potrei fare?

Loading