Aggiornamento della riga di codice

Programmazione in Java

Contro un database possiamo Esegui diversi tipi di dichiarazioni, da una semplice query, attraverso inserti di massa, fino a una dichiarazione che aumenta le autorizzazioni di un gruppo di utenti.

Ma ora ci concentreremo sulle consultazioni (selezionare) con Java JDBC. Questi tipi di dichiarazioni li useranno per recuperare un set di dati del database. In loro, normale, è quello di selezionare una serie di campi di una tabella e mostrarli sullo schermo.

Cancella è che quando lasciamo l’esempio di base della tabella di 10-record e affrontiamo tabelle di milioni E milioni di dati, dovremmo, arrivare, che sarebbe abbastanza consigliabile, eseguire un certo tipo di filtro. Penso che qualsiasi gestore di database possa raggiungerci le mani con noi se eseguono una query su una tabella client se non includiamo alcun filtro. Ora, che se ci filtrassimo solo dalla città uguale a “Ávila”, penso anche io.

Bene, cosa andiamo. Abbiamo diversi modi di eseguire filtri in una query. Il primo approccio è quello di codificare direttamente i valori nella frase. Qualcosa come …

SELECT nombre, edad, profesión, ciudadFROM personasWHERE ciudad = 'Ávila'AND edad BETWEEN 24 AND 32

Sì, speriamo che il nostro capo non ci dice che vuole una relazione dove introduciamo una città e due anni prendiamo fuori il set di persone che soddisfano questi requisiti.

A Se come siamo molto previsti, guidiamo la query successiva in cui i parametri vanno in Variabili. Stare qualcosa come questo …

String sCiudad, sEdad1, sEdad2;String sSQL = "SELECT nombre, edad, profesión, ciudad FROM personas WHERE ciudad = '" + sCiudad + "' AND edad BETWEEN " + sEdad1 + " AND " + sEdad1 + ";"

Poiché questo è uno dei più grandi errori che possiamo fare ed è che la concatenazione delle catene può portare a quanto segue ( Se non prendiamo le precauzioni necessarie e se succede che abbiamo un piccolo utente allarmato).

sCiudad = "Avila";sEdad1 = "20";sEdad2 = "28; DELETE FROM cuentas";

Resta eseguendo la seguente query:

SELECT nombre, edad, profesión, ciudadFROM personasWHERE ciudad = 'Ávila'AND edad BETWEEN 24 AND 32;DELETE FROM cuentas

E penso che sia se non ti piacerà il nostro capo qualsiasi cosa.

diciamo che questo è un caso eccezionale e che non dovrebbe verificarsi. È noto come iniezione di codice SQL. Anche così, il modo più corretto per farlo sarebbe inserendo parametri.

Inizialmente, in JAVA JDBC, dobbiamo mettere un interrogatorio in ogni sito in cui vogliamo mettere dinamicamente un valore. Quindi, sostituiremo ogni interrogatorio per un valore utilizzando il metodo SetXXX del preparato. Dove XXX sarà il tipo di valore che vogliamo inserire: stringa, int, data, … quindi avremo setstring, sterint, setarray, setbyte, …

Come sapere perché gli interrogazioni sostituiscono il valore? Bene, perché, il primo parametro del metodo è il numero della domanda da sostituire (a partire da 1).

stmt = con.prepareStatement("SELECT nombre, edad, profesion, ciudad FROM Personas WHERE edad > ? AND ciudad = ?");stmt.setInt(1,25);stmt.setString(2,"Salamanca");
19 Condividi

>

Leave a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *