Upgrade de linie

Programare în Java

împotriva unei baze de date pe care o putem Executați diferite tipuri de declarații, dintr-o interogare simplă, prin inserții de masă, până la o declarație care mărește permisiunile unui grup de utilizatori.

Dar acum ne vom concentra pe consultări (selectați) cu Java JDBC. Aceste tipuri de declarații le vor folosi pentru a recupera un set de date din baza de date. În ele, normal, este de a selecta un set de câmpuri de masă și de a le arăta pe ecran.

clar este că atunci când lăsăm exemplul de bază al mesei de 10 înregistrări și ne confruntăm cu mese de milioane Și milioane de date, ar trebui să vindem, că ar fi destul de recomandabil să efectueze un anumit tip de filtru. Cred că orice manager de baze de date ar putea ajunge la mâini cu noi dacă conducem o interogare despre un tabel client dacă nu includem niciun filtru. Acum, că dacă am fi filtrat doar de oraș egal cu „Ávila”, cred că și eu.

Ei bine, ce mergem. Avem modalități diferite de a efectua filtre într-o interogare. Prima abordare este de a codifica direct valorile din propoziție. Ceva de genul …

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

că da, să sperăm că șeful nostru nu ne spune că el dorește un raport în care introducerea unui oraș și două vremuri pe care le luăm Set de oameni care îndeplinesc aceste cerințe.

A Dacă suntem foarte apreciați, mergem la următoarea interogare unde parametrii vor merge variabile. Stai ceva de genul asta …

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

Pentru că aceasta este una dintre cele mai mari greșeli pe care le putem face și este că concatenarea lanțurilor poate duce la următoarele ( Dacă nu luăm măsurile de precauție necesare și dacă se întâmplă că avem un mic utilizator alarmat).

divid id = „D058C26CF5″>

Rămâne rulează următoarea interogare:

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

și cred că este dacă nu vă place să vă bucurați de seful nostru.

Să presupunem că acesta este un caz excepțional și care nu ar trebui să apară. Este cunoscut sub numele de injecție de cod SQL. Chiar și așa, cel mai corect mod de a face acest lucru ar fi prin introducerea parametrilor.

Inițial, în Java JDBC, trebuie să punem o interogare la fiecare site unde vrem să punem o valoare dinamică dinamică. Apoi, vom înlocui fiecare interogare pentru o valoare utilizând metoda SETXXX a pregătirii. În cazul în care XXX va fi un fel de valoare pe care vrem să o introducem: șir, int, data, … așa că vom avea setstring, Sterint, SetRray, Secbyte, …

Cum să știți de ce interogarea înlocuiește valoarea? Ei bine, deoarece, primul parametru al metodei este numărul de întrebare care trebuie înlocuit (începând cu 1).

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

Leave a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *