Rad s bazama podataka u Javi

Sadržaj
Java Kao višenamjenski jezik, osim različitih funkcionalnosti koje možemo postići, također nam omogućuje rad uz postojanost podataka, jer za to možemo uspostaviti vezu s različitim strojevima Baze podataka koji postoje na tržištu.
A Baza podataka To može biti nešto jednostavno kao sustav ključ-vrijednost u datoteci s običnim tekstom, kao i složenija i modernija rješenja, poput onih koja nisu povezana s odnosima, što čini mogućnost razvoja različitih shema povezivanja obveznom značajkom.
JDBC skup su klasa koje dopuštaju Java uspostaviti veze s bazama podataka, to nam omogućuje dobivanje rezultata upita u objektu tzv ResultSet.
Budući da je svaki motor drugačiji, vjerojatno je da ResultSet ono što primamo posebno mu je, stoga nam nije zgodno strukturirati našu aplikaciju oko spomenutog objekta.
Za rješavanje ovog problema možemo koristiti ono što se naziva a pristupni objekt, pomoću kojih možemo upravljati različitim oblicima našeg ResultSet olakšavajući implementaciju vaše aplikacije u našem programu, a time i programer ima manje problema.
Uzorak dizajna DAOThe Objekt za pristup podacima ili DAO To je uzorak dizajna koji prikuplja ono što smo objašnjavali u prethodnoj točki. To zahtijeva da stvorimo klasu pristupa svojstvima našeg Baza podataka. Da bi ovo uspjelo, moramo napraviti cijeli rad JDBC i kontroler koji nam omogućuje povezivanje s određenim strojem koji želimo, dodatno moramo provesti logičku implementaciju koju objašnjavamo kako bismo izbjegli ovisnost o određenim komponentama koja bi nam samo otežala prelazak na drugi stroj baze podataka.
Prvo što moramo učiniti kako bismo izgradili vezu JDBC je identificirati koji je motor s kojim želimo uspostaviti vezu, a zatim dobiti potrebne klase za spomenutu vezu, u ovom slučaju ćemo uspostaviti vezu MySQL, ovaj je motor lagan, besplatan i multiplatformni pa ga možemo instalirati u Windows, Linux ili Mac.
Priključak / J je skup klasa koje nudi razvojni tim MySQL, s njima možemo napraviti JDBC raditi zajedno s ovim Baze podataka relacijski, kako bismo ga uključili u svoj projekt, moramo slijediti sljedeće korake.
1- Moramo preuzeti i datoteku koja odgovara našoj platformi Windows ili za druge sa službene web stranice MySQL Na sljedećoj poveznici.

POVEĆAJTE

2- U ovom ćemo vodiču raditi pod Windowsima, pa ćemo za njegovu primjenu u našim primjerima to učiniti za vrijeme izvođenja radi veće jednostavnosti, međutim, kada preuzmemo paket, instaliramo ga kako bi bio dostupan na našem računalu.
3- Sada ćemo nastaviti s testiranjem radi li sve ispravno na našem računalu, za to ćemo napraviti mali kod u kojem ćemo vidjeti hoće li priključak / J je uspješno učitan u naš sustav, za to ćemo koristiti sljedeći kod:
 javna klasa ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Učitana klasa:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- Za pokretanje ovog primjera moramo uključiti ovisnost, preporučuje se da imamo .jar istim putem naše datoteke TestConexion.java. S ovim obuhvaćenim nastavit ćemo sastavljati našu datoteku, otvorit ćemo konzolu i s uputama javac i dodavanjem .jar prema razredna staza za vrijeme izvođenja sa naredbom -cp Možemo to učiniti, pogledajmo naredbenu liniju:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Konačno, za izvršavanje naše datoteke, potrebno je samo izvršiti sljedeću uputu:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Ako na konzoli imamo rezultat poput sljedećeg, možemo početi raditi s operacijama do Baze podataka:

POVEĆAJTE

Sljedeći korak koji moramo poduzeti je uspostaviti učinkovitu vezu s našim Baza podataka, za to moramo stvoriti jednu s barem jednom tablicom na našem lokalnom poslužitelju, na ovaj način možemo izvesti neke testove, kako bismo olakšali stvari stvaramo bazu podataka tzv. test a mi koristimo sljedeću skriptu za izradu tablice i umetanje nekih zapisa o testiranju, ovo za ubrzanje razvoja vodiča:

IZRADI TABLICU AKO NE POSTOJI `korisnici` (
`id` bigint (20) NIJE NULL AUTO_INCREMENT,
`name` varchar (255) NIJE NULL,
datum "datum" NIJE NULL,
`stanje` int (11) NIJE NULL,
PRIMARNI KLJUČ (`id`)
) MOTOR = InnoDB ZADNJA KARTE = latin1 AUTO_INCREMENT = 3;
INSERT INTO `users` (` id`, `name`,` date`, `status`) VRIJEDNOSTI
(1, "Korisnik 1", "2015-01-01", 1),
(2, "Korisnik 2", "2015-01-01", 1);

Sada u sljedećem kodu od Java usredotočit ćemo se na uspostavljanje veze s Baza podataka, za ovo s a pokušaj uhvatiti blok Potvrdit ćemo da je učinkovit i bez pogrešaka, a ako je veza uspostavljena, ispisat ćemo poruku o uspjehu, da vidimo:
 import java.sql.Connection; import java.sql.DriverManager; javni razred ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "naš korisnik"; private static final String password = "naša lozinka"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (put, korisnik, lozinka); System.out.println ("Veza uspješna"); } catch (iznimka e) {e.printStackTrace (); }}} 

Iz ovog koda možemo vidjeti da moramo uvesti dvije knjižnice iz paketa java.sql, jedno je Veza koja je zadužena za upravljanje svim aktivnostima kako bi mogla komunicirati s Bazom podataka, a druga je Upravitelj uređaja koja je odgovorna za osiguravanje načina na koji ćemo s njom komunicirati. Ako smo pravilno slijedili korake, trebali bismo vidjeti sljedeću poruku prilikom izvođenja našeg primjera u konzoli:

POVEĆAJTE

Imamo sve spremno za početak testiranja naših upita, za to će nam trebati nekoliko stvari, prvo što već imamo je objekt koji uspostavlja vezu s Baza podataka, tada ćemo morati uvesti pakete Izjava Y ResultSet s kojima prvo možemo poslati upite, a zatim dobiti odgovor na isti, na kraju prolazimo kroz objekt ResultSet gdje ćemo prikazati podatke umetnute u tablicu i prije zatvaranja programa moramo zatvoriti svaki od objekata koje smo stvorili, na ovaj način ćemo jamčiti integritet naših podataka. Pogledajmo kod koji prikazuje objašnjenje:
 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; uvoz java.sql.Statement; javna klasa ConnectionTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "naš korisnik"; private static final String password = "naša lozinka"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (put, korisnik, lozinka); Upit izraza = con.createStatement (); System.out.println ("Veza uspješna"); ResultSet result = query.executeQuery ("SELECT * FROM users"); while (result.next ()) {Naziv niza = rezultat.getString ("ime"); Niz datum = rezultat.getString ("datum"); System.out.println ("Naziv:" + ime + "Datum zapisa:" + datum); } rezultat.close (); upit.zatvoriti (); con.close (); } catch (iznimka e) {e.printStackTrace (); }}} 

Važno je to spomenuti u našem atributu rutu Izmijenili smo ga i naziv Baza podataka poziv test gdje moramo stvoriti tablicu korisnika, sastaviti našu datoteku i izvršiti, rezultat po konzoli bio bi kao što se vidi na sljedećoj slici:

POVEĆAJTE

Posmatrajući primjer povezivanja i upita prema bazi podataka, možemo vidjeti da moramo koristiti brojku tzv. Pripremite izjavu što nam olakšava rad ostavljajući upite pripremljene tako da ih možemo izvesti više puta, a da ih ne moramo graditi uvijek iznova, da bismo postigli ovu dinamiku, zamjenjujemo vrijednosti koje moramo promijeniti varijablama, a zatim kada izvršimo upitu prosljeđujemo stvarne vrijednosti. koristiti.
PrednostOvo ima nekoliko prednosti, već smo rekli da je prva mogućnost da se nešto koristi bez ponavljanja, ali to je i zbog sigurnosti, jer nam to omogućuje da tretiramo vrijednosti koje eventualno dolaze od unosa korisnika kako bismo izbjegli napad na naš Baza podataka, osim što možemo olakšati čitljivost našeg programa.
U sljedećem primjeru ćemo stvoriti upit s Pripremljena izjava, tako da se može koristiti nekoliko puta tijekom našeg programa. Pogledajmo rezultirajući kod:
 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.PreparedStatement; javna klasa PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "naš korisnik"; private static final String password = "naša lozinka"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (put, korisnik, lozinka); PreparedStatement upit = con.prepareStatement ("SELECT * FROM users Where id = ?;"); System.out.println ("Veza uspješna"); query.setInt (1, 1); ResultSet rezultat = query.executeQuery (); while (result.next ()) {Naziv niza = rezultat.getString ("ime"); Niz datum = rezultat.getString ("datum"); System.out.println ("Ime:" + ime + "Datum zapisa:" + datum); } rezultat.close (); upit.zatvoriti (); con.close (); } catch (iznimka e) {e.printStackTrace (); }}} 

Uočavamo da korištenjem metode setInt Objektom upita možemo proslijediti potrebni parametar za upit, čime ga možemo odvojiti od izvršenja upita, čime se dobiva prenosivost i lakoća čitanja. Za kraj sastavljamo i pokrećemo naš program:

POVEĆAJTE

Ovim završavamo ovaj vodič, jer vidimo mogućnosti za rad Baze podataka u Java Vrlo su zanimljivi jer nam omogućuju uključivanje fleksibilnosti i svestranosti u naše aplikacije, najvažnije je da će se, ako imamo iskustva s drugim jezicima, ovdje sigurno koristiti.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave