Darbas su „Java“ duomenų bazėmis

Turinys
„Java“ Kaip daugiafunkcinė kalba, be įvairių funkcijų, kurias galime pasiekti, ji taip pat leidžia mums dirbti su nuolatiniais duomenimis, todėl galime užmegzti ryšį su skirtingais Duomenų bazės kurie egzistuoja rinkoje.
A Duomenų bazė Tai gali būti kažkas tokio paprasto, kaip paprasto teksto failo rakto reikšmių sistema, taip pat sudėtingesni ir modernesni sprendimai, tokie kaip nesusiję, todėl galimybė sukurti skirtingas ryšio schemas yra privaloma funkcija.
JDBC yra klasių rinkinys, kuris leidžia „Java“ užmegzti ryšius su duomenų bazių varikliais, tai leidžia gauti užklausų rezultatus objekte, vadinamame Rezultatų rinkinys.
Kadangi kiekvienas variklis yra skirtingas, tikėtina, kad Rezultatų rinkinys tai, ką mes gauname, yra tam tikra, todėl mums nėra patogu kurti savo programą aplink minėtą objektą.
Norėdami išspręsti šią problemą, galime naudoti tai, kas vadinama a prieigos objektas, su kuriomis galime valdyti įvairias savo formas Rezultatų rinkinys palengvins jūsų programos įgyvendinimą mūsų programoje, todėl kūrėjas turės mažiau problemų.
DAO dizaino modelisThe Duomenų prieigos objektas arba DAO Tai dizaino modelis, kuriame surenkama tai, ką paaiškinome ankstesniame punkte, todėl mums reikia sukurti prieigos klasę prie mūsų savybių Duomenų bazė. Norėdami tai padaryti, turime atlikti visą darbą JDBC ir valdiklis, leidžiantis prisijungti prie konkretaus norimo variklio, be to, turime atlikti loginį diegimą, kurį paaiškiname, kad išvengtume priklausomybės nuo konkrečių komponentų, dėl kurių mums būtų tik sunku pereiti prie kito duomenų bazės variklio.
Pirmas dalykas, kurį turime padaryti, kad sukurtume ryšį JDBC yra nustatyti variklį, prie kurio norime prisijungti, ir tada gauti reikiamas šio ryšio klases, šiuo atveju mes ketiname užmegzti ryšį MySQL, šis variklis yra lengvas, nemokamas ir daugiaplatformis, todėl galime jį įdiegti tiek „Windows“, „Linux“ ar „Mac“.
Jungtis / J yra užsiėmimų, kuriuos siūlo kūrimo komanda, rinkinys MySQL, su jais galime pagaminti JDBC dirbti kartu su tuo Duomenų bazės santykinis, norėdami jį įtraukti į savo projektą, turime atlikti šiuos veiksmus.
1- Mes taip pat turime atsisiųsti failą, atitinkantį mūsų platformą „Windows“ arba kitiems iš oficialios svetainės MySQL Toliau esančioje nuorodoje.

DIDELIS

2- Šioje pamokoje mes dirbsime „Windows“, todėl, norėdami ją įgyvendinti mūsų pavyzdžiuose, tai padarysime vykdymo metu, kad būtų lengviau, tačiau kai atsisiųsime paketą, jį įdiegsime, kad jis būtų prieinamas mūsų kompiuteryje.
3- Dabar bandysime patikrinti, ar mūsų kompiuteryje viskas veikia teisingai, tam sukursime nedidelį kodą, kuriame pamatysime, ar jungtis / J buvo sėkmingai įkelta į mūsų sistemą, tam naudosime šį kodą:
 public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Įkelta klasė:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- Norėdami vykdyti šį pavyzdį, turime įtraukti priklausomybę, rekomenduojama turėti .jar tame pačiame mūsų failo kelyje TestConexion.java. Atsižvelgdami į tai, mes toliau kaupiame savo failą, atidarome konsolę ir su instrukcija javac ir pridėjus .jar į klasės takas vykdymo metu su komanda -cp Mes galime tai padaryti, pažiūrėkime komandinę eilutę:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Galiausiai, norėdami vykdyti savo failą, turime tik įvykdyti šią instrukciją:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Jei konsolėje turime tokį rezultatą, galime pradėti dirbti su Duomenų bazės:

DIDELIS

Kitas žingsnis, kurio turime imtis, yra užmegzti veiksmingą ryšį su mūsų Duomenų bazė, tam mes turime sukurti lentelę, kurioje yra bent viena lentelė vietiniame serveryje, tokiu būdu galime atlikti tam tikrus testus, kad būtų lengviau, sukuriame duomenų bazę testas ir mes naudojame šį scenarijų, norėdami sukurti lentelę ir įterpti kai kuriuos bandymų įrašus, kad paspartintume vadovėlio kūrimą:

KURTI LENTELĘ, JEI NĖRA „vartotojų“ (
`id` bigint (20) NOT NULL AUTO_INCREMENT,
"name" varchar (255) NOT NULL,
"data" data NE NULL,
`state` int (11) NOT NULL,
PAGRINDINIS RAKTAS („id“)
) VARIKLIS = „InnoDB DEFAULT CHARSET“ = latin1 AUTO_INCREMENT = 3;
INSERT INTO "vartotojai" ("id", "name", "date", "status") VERTĖS
(1, „1 vartotojas“, „2015-01-01“, 1),
(2, „2 vartotojas“, „2015-01-01“, 1);

Dabar šiame kode „Java“ mes sutelksime dėmesį į ryšio užmezgimą Duomenų bazė, tam su a pabandykite sugauti bloką Patvirtinsime, kad jis veiksmingas ir be klaidų, tada, jei ryšys buvo užmegztas, atspausdinsime sėkmės pranešimą, pažiūrėkime:
 importuoti java.sql.Connection; importuoti java.sql.DriverManager; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "mūsų vartotojas"; private static final String password = "mūsų slaptažodis"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (kelias, vartotojas, slaptažodis); System.out.println („Sėkmingas ryšys“); } sugauti (e išimtis) {e.printStackTrace (); }}} 

Iš šio kodo matome, kad iš paketo turime importuoti dvi bibliotekas java.sql, vienas yra Ryšys kuri yra atsakinga už visos veiklos valdymą, kad būtų galima bendrauti su duomenų baze, o kita yra „DeviceManager“ kuri yra atsakinga už tai, kaip mes su juo bendrausime. Jei teisingai atlikome veiksmus, vykdydami pavyzdį konsolėje turėtume matyti šį pranešimą:

DIDELIS

Mes jau pasiruošę pradėti tikrinti savo užklausas, tam mums reikės kelių dalykų, pirmiausia jau turime objektą, kuris užmezga ryšį su Duomenų bazė, tada turėsime importuoti pakuotes Pareiškimas Y Rezultatų rinkinys su kuriais pirmiausia galime išsiųsti užklausas ir tada gauti tą patį atsakymą, galiausiai einame per objektą Rezultatų rinkinys kur parodysime lentelėje įterptus duomenis ir prieš uždarydami programą turime uždaryti kiekvieną savo sukurtą objektą, tokiu būdu garantuosime savo duomenų vientisumą. Pažiūrėkime kodą, kuris parodo, kas paaiškinta:
 importuoti java.sql.Connection; importuoti java.sql.DriverManager; importuoti java.sql.ResultSet; importuoti java.sql.Statement; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "mūsų vartotojas"; private static final String password = "mūsų slaptažodis"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (kelias, vartotojas, slaptažodis); Teiginio užklausa = con.createStatement (); System.out.println („Sėkmingas ryšys“); ResultSet result = query.executeQuery ("SELECT * FROM users"); while (result.next ()) {String name = result.getString ("name"); Eilutės data = result.getString ("data"); System.out.println ("Vardas:" + vardas + "Įrašo data:" + data); } result.close (); query.close (); con.close (); } sugauti (e išimtis) {e.printStackTrace (); }}} 

Svarbu tai paminėti mūsų atributikoje maršrutą Mes jį pakeitėme ir pavadinimą Duomenų bazė skambinti testas kur turime sukurti naudotojų lentelę, sudaryti failą ir vykdyti, konsolės rezultatas būtų toks, kaip parodyta šiame paveikslėlyje:

DIDELIS

Stebėję ryšio su duomenų baze pavyzdį ir užklausas, matome, kad turime naudoti figūrą pavadinimu Paruoškite pareiškimą tai palengvina mūsų darbą, palikdami užklausas paruoštas, kad galėtume jas vykdyti kelis kartus, jų nereikės kurti vis iš naujo, kad pasiektume šią dinamiką, pakeičiame kintamųjų vertes, kurias turime pakeisti, o tada, kai vykdome užklausą perduodame tikrąsias vertes. naudoti.
PrivalumasTai turi keletą privalumų, mes jau sakėme, kad pirmasis yra galimybė kažką naudoti nekartojant, tačiau tai taip pat daroma dėl saugumo, nes tai leidžia mums traktuoti vertybes, kurios galbūt kyla iš vartotojo įvesties, kad išvengtume atakos prieš mūsų Duomenų bazė, be to, mes taip pat galime palengvinti mūsų programos skaitomumą.
Šiame pavyzdyje mes sukursime užklausą su Paruoštas pareiškimas, kad ją būtų galima naudoti kelis kartus per mūsų programą. Pažiūrėkime gautą kodą:
 importuoti java.sql.Connection; importuoti java.sql.DriverManager; importuoti java.sql.ResultSet; importuoti java.sql.PreparedStatement; public class PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "mūsų vartotojas"; private static final String password = "mūsų slaptažodis"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (kelias, vartotojas, slaptažodis); PreparedStatement query = con.prepareStatement ("SELECT * FROM users Where id = ?;"); System.out.println („Sėkmingas ryšys“); query.setInt (1, 1); ResultSet rezultatas = query.executeQuery (); while (result.next ()) {String name = result.getString ("vardas"); Eilutės data = result.getString ("data"); System.out.println ("Vardas:" + vardas + "Įrašo data:" + data); } result.close (); query.close (); con.close (); } sugauti (e išimtis) {e.printStackTrace (); }}} 

Pastebime, kad naudojant metodą nustatyti Naudodami užklausos objektą, galime perduoti užklausai būtiną parametrą, tai galime atskirti nuo užklausos vykdymo, taip padidindami perkeliamumą ir lengvą skaitymą. Baigdami sudarome ir vykdome savo programą:

DIDELIS

Tuo baigiame šią mokymo programą, nes matome galimybes dirbti Duomenų bazės į „Java“ Jie yra labai įdomūs, nes leidžia mums pritaikyti savo programas lankstumą ir universalumą, svarbiausia yra tai, kad jei turėsime patirties su kitomis kalbomis, ji tikrai bus naudojama čia.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave