Lucrul cu baze de date în Java

Cuprins
Java Ca limbaj multifuncțional, în afară de diferitele funcționalități pe care le putem realiza, ne permite, de asemenea, să lucrăm cu persistența datelor, pentru aceasta putem face conexiune cu diferitele motoare ale Baze de date care există pe piață.
A Bază de date Poate fi ceva la fel de simplu ca un sistem cheie-valoare într-un fișier text simplu, precum și soluții mai complexe și moderne, cum ar fi cele non-relaționale, ceea ce face ca posibilitatea de a dezvolta diferite scheme de conexiune să fie o caracteristică obligatorie.
JDBC sunt un set de clase care permit Java stabilim conexiuni cu motoarele bazei de date, acest lucru ne permite să obținem rezultatele interogărilor într-un obiect numit Setul de rezultate.
Deoarece fiecare motor este diferit, este probabil ca Setul de rezultate pe care îl primim îi este deosebit, de aceea nu ne este convenabil să ne structurăm aplicația în jurul obiectului menționat.
Pentru a rezolva această problemă putem folosi ceea ce se numește a obiect de acces, cu care putem gestiona diferitele forme ale noastre Setul de rezultate facilitând implementarea aplicației dvs. în cadrul programului nostru și astfel dezvoltatorul are mai puține probleme.
Modelul de design DAO Obiect de acces la date sau DAO Este un model de proiectare care colectează ceea ce explicasem în punctul anterior, acest lucru ne cere să creăm o clasă de acces la proprietățile noastre Bază de date. Pentru a face acest lucru, trebuie să facem întreaga lucrare JDBC și controlerul care ne permite să ne conectăm cu motorul particular pe care îl dorim, în plus, trebuie să realizăm implementarea logică pe care o explicăm pentru a evita dependența de anumite componente care ar face doar dificilă migrarea noastră către un motor de baze de date diferit.
Primul lucru pe care trebuie să-l facem pentru a construi o conexiune JDBC este să identificăm care este motorul la care dorim să facem conexiunea și apoi să obținem clasele necesare pentru conexiunea menționată, în acest caz vom face o conexiune MySQL, acest motor este ușor, gratuit și multiplatform, deci îl putem instala atât în Windows, Linux sau Mac.
Conector / J este ansamblul de clase oferite de echipa de dezvoltare a MySQL, cu ei putem face JDBC lucrează împreună cu asta Baze de date relațional, pentru a-l încorpora în proiectul nostru trebuie să urmăm pașii următori.
1- Trebuie să descărcăm fișierul corespunzător platformei noastre Windows sau pentru alții de pe site-ul oficial al MySQL În următorul link.

MARI

2- În acest tutorial vom lucra sub Windows, așa că pentru implementarea acestuia în exemplele noastre o vom face în timpul rulării pentru o mai mare ușurință, totuși, atunci când descărcăm pachetul, îl instalăm pentru a-l avea disponibil pe computerul nostru.
3- Acum vom continua să testăm dacă totul funcționează corect pe computerul nostru, pentru aceasta vom crea un mic cod în care vom vedea dacă conector / J a fost încărcat cu succes în sistemul nostru, pentru aceasta vom folosi următorul cod:
 public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Clasa încărcată:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- Pentru a rula acest exemplu, trebuie să includem dependența, se recomandă să avem .borcan în aceeași cale a fișierului nostru TestConexion.java. Cu aceasta acoperită vom continua să compilăm fișierul, deschidem o consolă și cu instrucțiunile javac și adăugând .borcan la calea clasei în timpul rulării cu comanda -cp O putem face, să vedem linia de comandă:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- În cele din urmă, pentru a executa fișierul nostru, trebuie doar să executăm următoarea instrucțiune:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Dacă avem un rezultat de genul următor în consola noastră, putem începe să lucrăm cu operațiuni la Baze de date:

MARI

Următorul pas pe care trebuie să-l facem este să stabilim o conexiune eficientă cu a noastră Bază de date, pentru aceasta trebuie să creăm unul cu cel puțin o tabelă pe serverul nostru local, în acest fel putem efectua unele teste, pentru a ușura lucrurile, creăm o bază de date numită Test și folosim următorul script pentru a crea tabelul și a insera câteva înregistrări de testare, pentru a accelera dezvoltarea tutorialului:

CREAȚI TABELUL DACĂ NU EXISTĂ „utilizatori” (
`id` bigint (20) NOT NULL AUTO_INCREMENT,
`name` varchar (255) NOT NULL,
data „date` NOT NULL,
`state` int (11) NOT NULL,
CHEIE PRIMARĂ („id”)
) MOTOR = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
INSERAȚI ÎN "utilizatori" ("id", "nume", "dată", "stare") VALORI
(1, „Utilizator 1”, „01-01-2015”, 1),
(2, „Utilizatorul 2”, „01-01-2015”, 1);

Acum, în următorul cod de Java ne vom concentra pe stabilirea legăturii cu Bază de date, pentru aceasta cu un încercați blocul de captură Vom confirma că este eficient și fără erori, atunci dacă conexiunea a fost stabilită, vom imprima un mesaj de succes, să vedem:
 import java.sql.Connection; import java.sql.DriverManager; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "utilizatorul nostru"; private static final String password = "parola noastră"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (cale, utilizator, parolă); System.out.println ("Conexiune reușită"); } catch (Exception e) {e.printStackTrace (); }}} 

Din acest cod putem vedea că trebuie să importăm două biblioteci din pachet java.sql, unul este Conexiune care se ocupă de gestionarea tuturor activităților pentru a putea comunica cu baza de date și cealaltă este Manager de dispozitiv care este responsabil pentru furnizarea modului în care vom comunica cu acesta. Dacă am urmat corect pașii, ar trebui să vedem următorul mesaj când rulăm exemplul în consolă:

MARI

Avem totul pregătit pentru a începe testarea interogărilor noastre, pentru aceasta vom avea nevoie de mai multe lucruri, primul pe care îl avem deja este obiectul care face conexiunea la Bază de date, atunci va trebui să importăm pachetele Afirmație Da Setul de rezultate cu care putem trimite mai întâi interogări și apoi obținem răspunsul la aceeași, în cele din urmă parcurgem obiectul Setul de rezultate unde vom afișa datele inserate în tabel și înainte de a închide programul trebuie să închidem fiecare dintre obiectele pe care le-am creat, în acest fel vom garanta integritatea datelor noastre. Să vedem codul care arată ce este explicat:
 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "utilizatorul nostru"; private static final String password = "parola noastră"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (cale, utilizator, parolă); Declarație interogare = con.createStatement (); System.out.println ("Conexiune reușită"); ResultSet result = query.executeQuery ("SELECT * FROM utilizatori"); while (result.next ()) {String name = result.getString ("nume"); Data șirului = result.getString („data”); System.out.println ("Nume:" + nume + "Data înregistrării:" + dată); } result.close (); query.close (); con.close (); } catch (Exception e) {e.printStackTrace (); }}} 

Este important să menționăm acest lucru în atributul nostru traseu L-am modificat și numele fișierului Bază de date apel Test unde trebuie să creăm tabelul utilizatorilor noștri, să compilăm fișierul și să executăm, rezultatul de pe consolă ar fi așa cum se vede în următoarea imagine:

MARI

După ce am observat exemplul conexiunii și interogările la baza de date, putem vedea că trebuie să folosim o figură numită Pregătiți declarația care ne face munca mai ușoară lăsând interogările pregătite astfel încât să le putem executa de mai multe ori fără a fi nevoie să le construim mereu, pentru a realiza această dinamică înlocuim valorile pe care trebuie să le schimbăm pentru variabile și apoi când executăm interogare îi transmitem valorile reale. să folosim.
AvantajAcest lucru are mai multe avantaje, am spus deja că primul este să puteți folosi ceva fără să-l repetați, dar este și pentru securitate, deoarece acest lucru ne permite să tratăm valorile care pot proveni din introducerea utilizatorului pentru a evita un atac asupra Baza de date, pe lângă faptul că putem facilita și lizibilitatea programului nostru.
În exemplul următor vom crea o interogare cu Declarație pregătită, astfel încât să poată fi folosit de mai multe ori în timpul programului nostru. Să vedem codul rezultat:
 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.PreparedStatement; public class PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "utilizatorul nostru"; private static final String password = "parola noastră"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (cale, utilizator, parolă); PreparedStatement query = con.prepareStatement ("SELECT * FROM users Where id = ?;"); System.out.println ("Conexiune reușită"); query.setInt (1, 1); ResultSet result = query.executeQuery (); while (result.next ()) {String name = result.getString ("nume"); Data șirului = result.getString („data”); System.out.println ("Nume:" + nume + "Data înregistrării:" + dată); } result.close (); query.close (); con.close (); } catch (Exception e) {e.printStackTrace (); }}} 

Observăm că folosind metoda setInt Cu obiectul de interogare, putem trece parametrul necesar pentru interogare, cu acesta îl putem detașa de executarea interogării, câștigând astfel portabilitate și ușurință în citire. Pentru a termina, compilăm și rulăm programul nostru:

MARI

Cu aceasta încheiem acest tutorial, deoarece vedem opțiunile cu care să lucrăm Baze de date în Java Sunt foarte interesante, deoarece ne permit să încorporăm flexibilitate și versatilitate în aplicațiile noastre, cel mai important lucru este că, dacă avem experiență în alte limbi, cu siguranță va fi folosit aici.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave