Arbejde med databaser i Java

Indholdsfortegnelse
Java Som et multifunktionssprog, bortset fra de forskellige funktionaliteter, vi kan opnå, giver det os også mulighed for at arbejde med vedholdenhed af data, for dette kan vi oprette forbindelse til de forskellige motorer i Databaser der findes på markedet.
EN Database Det kan være noget så simpelt som et nøgleværdisystem i en almindelig tekstfil, såvel som mere komplekse og moderne løsninger som f.eks. Ikke-relationelle, hvilket gør det muligt at udvikle forskellige forbindelsesordninger til en obligatorisk funktion.
JDBC er et sæt klasser, der tillader Java etablere forbindelser med databasemotorer, giver dette os mulighed for at få resultaterne af forespørgslerne i et objekt, der kaldes Resultat Indstil.
Da hver motor er forskellig, er det sandsynligt, at Resultat Indstil som vi modtager, er særligt for det, og derfor er det ikke praktisk for os at strukturere vores applikation omkring objektet.
For at løse dette problem kan vi bruge det, der kaldes a adgangsobjekt, som vi kan styre de forskellige former for vores Resultat Indstil gør din ansøgning inden for vores program lettere at implementere, og udvikleren har dermed færre problemer.
DAO designmønsterDet Dataadgangsobjekt eller DAO Det er et designmønster, der samler det, vi havde forklaret i det foregående punkt, dette kræver, at vi opretter en adgangsklasse til egenskaberne for vores Database. For at få dette til at fungere må vi få det hele til at fungere JDBC og controlleren, der giver os mulighed for at oprette forbindelse til den bestemte motor, vi ønsker, derudover skal vi udføre den logiske implementering, som vi forklarer for at undgå afhængighed af bestemte komponenter, der kun ville gøre det svært for os at migrere til en anden database -motor.
Den første ting, vi skal gøre for at opbygge en forbindelse JDBC er at identificere hvilken motor vi vil oprette forbindelsen til og derefter få de nødvendige klasser til den nævnte forbindelse, i dette tilfælde vil vi oprette en forbindelse MySQL, denne motor er let, gratis og multiplatform, så vi kan installere den begge i Windows, Linux eller Mac.
Stik / J er det sæt klasser, der tilbydes af udviklingsteamet af MySQL, med dem kan vi lave JDBC arbejde sammen med dette Databaser relationelle, for at indarbejde det i vores projekt skal vi følge følgende trin.
1- Vi skal enten downloade den fil, der svarer til vores platform Windows eller for andre fra det officielle websted for MySQL I det følgende link.

FORSTØRRE

2- I denne vejledning vil vi arbejde under Windows, så for implementeringen i vores eksempler vil vi gøre det ved runtime for større lethed, men når vi downloader pakken, installerer vi den for at have den tilgængelig på vores computer.
3- Nu vil vi fortsætte med at teste, at alt fungerer korrekt på vores computer, til dette vil vi lave en lille kode, hvor vi vil se, om stik / J blev indlæst med succes i vores system, til dette vil vi bruge følgende kode:
 public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Indlæst klasse:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- For at køre dette eksempel skal vi inkludere afhængigheden, det anbefales, at vi har .krukke i den samme sti som vores fil TestConexion.java. Med dette dækket fortsætter vi med at kompilere vores fil, vi åbner en konsol og med instruktionen javac og tilføjelse af .krukke til klassesti ved runtime med kommandoen -cp Vi kan gøre det, lad os se kommandolinjen:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Endelig, for at eksekvere vores fil, behøver vi kun at udføre følgende instruktion:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Hvis vi har et resultat som følgende i vores konsol, kan vi begynde at arbejde med operationer til Databaser:

FORSTØRRE

Det næste skridt, vi skal tage, er at etablere en effektiv forbindelse til vores Database, til dette skal vi oprette en med mindst et bord på vores lokale server, på denne måde kan vi udføre nogle tests, for at gøre tingene lettere opretter vi en database kaldet prøve og vi bruger følgende script til at oprette tabellen og indsætte nogle testrekorder, dette for at fremskynde udviklingen af ​​selvstudiet:

Opret tabel, hvis den ikke findes 'brugere' (
`id` bigint (20) IKKE NULL AUTO_INCREMENT,
`navn` varchar (255) IKKE NULL,
`dato` dato IKKE NULL,
`state` int (11) NOT NULL,
PRIMÆR NØGLE (`id`)
) MOTOR = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
INSERT INTO `users '(` id`, `name`,` date`, `status`) VÆRDIER
(1, 'Bruger 1', '2015-01-01', 1),
(2, 'Bruger 2', '2015-01-01', 1);

Nu i følgende kode af Java vi vil fokusere på at etablere forbindelsen med Database, for dette med en prøv fangstblok Vi vil validere, at den er effektiv og uden fejl, så hvis forbindelsen blev etableret, udskriver vi en succesbesked, lad os se:
 import java.sql.Connect; import java.sql.DriverManager; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "vores bruger"; private static final String password = "vores kodeord"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (sti, bruger, adgangskode); System.out.println ("Forbindelsen lykkedes"); } fangst (Undtagelse e) {e.printStackTrace (); }}} 

Fra denne kode kan vi se, at vi skal importere to biblioteker fra pakken java.sql, den ene er Forbindelse som har ansvaret for at styre alle aktiviteterne for at kunne kommunikere med databasen og den anden er Enhedshåndtering som er ansvarlig for at levere den måde, vi vil kommunikere med det. Hvis vi har fulgt trinene korrekt, skulle vi se følgende meddelelse, når vi kører vores eksempel i konsollen:

FORSTØRRE

Vi har alt klar til at begynde at teste vores forespørgsler, til dette har vi brug for flere ting, den første vi allerede har er objektet, der opretter forbindelse til Database, så skal vi importere pakkerne Udmelding Y Resultat Indstil hvormed vi først kan sende forespørgsler og derefter få svaret på det samme, endelig går vi gennem objektet Resultat Indstil hvor vi vil vise de data, der er indsat i tabellen, og før programmet lukkes, skal vi lukke hvert af de objekter, vi har oprettet, på denne måde garanterer vi integriteten af ​​vores data. Lad os se koden, der viser, hvad der forklares:
 import java.sql.Connect; 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 = "vores bruger"; private static final String password = "vores adgangskode"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (sti, bruger, adgangskode); Erklæring forespørgsel = con.createStatement (); System.out.println ("Forbindelsen lykkedes"); ResultSet result = query.executeQuery ("VÆLG * FRA brugere"); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("date"); System.out.println ("Navn:" + navn + "Optagelsesdato:" + dato); } result.close (); query.close (); lukk (); } fangst (Undtagelse e) {e.printStackTrace (); }}} 

Det er vigtigt at nævne det i vores attribut rute Vi har ændret det og navnet på Database opkald prøve hvor vi skal have vores brugertabel oprettet, kompilere vores fil og eksekvere, ville resultatet ved konsol være som set på følgende billede:

FORSTØRRE

Efter at have observeret eksemplet på forbindelsen og forespørgslerne til databasen, kan vi se, at vi skal bruge en figur kaldet Forbered erklæring det gør vores arbejde lettere ved at lade forespørgsler være forberedt, så vi kan udføre dem flere gange uden at skulle bygge dem igen og igen, for at opnå denne dynamik erstatter vi de værdier, vi skal ændre for variabler, og når vi udfører forespørgsel sender vi de reelle værdier til den. at bruge.
FordelDette har flere fordele, vi sagde allerede, at det første er at kunne bruge noget uden at gentage det, men det er også for sikkerheden, da dette giver os mulighed for at behandle de værdier, der muligvis kommer fra brugerinput for at undgå et angreb på vores Database, udover vi kan også lette læsbarheden af ​​vores program.
I det følgende eksempel vil vi oprette en forespørgsel med Udarbejdet erklæring, så den kan bruges flere gange i løbet af vores program. Lad os se den resulterende kode:
 import java.sql.Connect; 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 = "vores bruger"; private static final String password = "vores kodeord"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (sti, bruger, adgangskode); PreparedStatement forespørgsel = con.prepareStatement ("SELECT * FRA brugere Hvor id = ?;"); System.out.println ("Forbindelsen lykkedes"); query.setInt (1, 1); ResultSet result = query.executeQuery (); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("date"); System.out.println ("Navn:" + navn + "Optagelsesdato:" + dato); } result.close (); query.close (); lukk (); } fangst (Undtagelse e) {e.printStackTrace (); }}} 

Vi bemærker, at ved hjælp af metoden setInt Med forespørgselsobjektet kan vi videregive den nødvendige parameter til forespørgslen, med dette kan vi løsne det fra henvendelsen af ​​forespørgslen og dermed opnå portabilitet og let læsning. For at afslutte kompilerer og kører vi vores program:

FORSTØRRE

Med dette afslutter vi denne vejledning, da vi ser mulighederne at arbejde med Databaser i Java De er meget interessante, da de giver os mulighed for at inkorporere fleksibilitet og alsidighed i vores applikationer. Det vigtigste er, at hvis vi har erfaring med andre sprog, vil det helt sikkert blive brugt her.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave