Darbs ar datu bāzēm Java

Satura rādītājs
Java Tā ir daudzfunkcionāla valoda, izņemot dažādas funkcijas, kuras mēs varam sasniegt, tā arī ļauj mums strādāt ar datu noturību, tāpēc mēs varam izveidot savienojumu ar dažādiem Datu bāzes kas pastāv tirgū.
A Datu bāze Tas var būt kaut kas tik vienkāršs kā atslēgas vērtību sistēma vienkāršā teksta failā, kā arī sarežģītāki un mūsdienīgāki risinājumi, piemēram, nesaistīti risinājumi, kas padara iespēju izveidot dažādas savienojuma shēmas par obligātu funkciju.
JDBC ir klašu kopums, kas atļauj Java izveidot savienojumus ar datu bāzes dzinējiem, tas ļauj iegūt vaicājumu rezultātus objektā ar nosaukumu Rezultātu kopa.
Tā kā katrs dzinējs ir atšķirīgs, iespējams, ka Rezultātu kopa tas, ko mēs saņemam, ir īpašs, tāpēc mums nav ērti strukturēt savu lietojumprogrammu ap minēto objektu.
Lai atrisinātu šo problēmu, mēs varam izmantot tā saukto a piekļuves objekts, ar kuru mēs varam pārvaldīt dažādas mūsu formas Rezultātu kopa padarot jūsu lietojumprogrammu vieglāk īstenojamu mūsu programmā un tādējādi izstrādātājam ir mazāk problēmu.
DAO dizaina modelis Datu piekļuves objekts vai DAO Tas ir dizaina modelis, kas apkopo to, ko mēs iepriekš paskaidrojām, tāpēc mums ir jāizveido piekļuves klase mūsu īpašībām Datu bāze. Lai veiktu šo darbu, mums ir jāizdara viss darbs JDBC un kontrolieris, kas ļauj mums izveidot savienojumu ar konkrēto vēlamo dzinēju, turklāt mums ir jāveic loģiskā ieviešana, ko mēs izskaidrojam, lai izvairītos no atkarības no konkrētām sastāvdaļām, kas mums tikai apgrūtinātu pāreju uz citu datu bāzes dzinēju.
Pirmā lieta, kas mums jādara, lai izveidotu savienojumu JDBC ir noteikt, kuram dzinējam mēs vēlamies izveidot savienojumu, un pēc tam iegūt vajadzīgās klases šim savienojumam, šajā gadījumā mēs izveidosim savienojumu MySQL, šis dzinējs ir viegls, bezmaksas un daudzplatformu, tāpēc mēs varam to uzstādīt gan Windows, Linux vai Mac.
Savienotājs / J ir nodarbību kopums, ko piedāvā izstrādātāju komanda MySQL, ar viņiem mēs varam izgatavot JDBC strādāt kopā ar šo Datu bāzes relāciju, lai to iekļautu mūsu projektā, mums jāveic šādas darbības.
1- Mums arī jālejupielādē mūsu platformai atbilstošais fails Windows vai citiem no oficiālās vietnes MySQL Nākamajā saitē.

PALIELINĀT

2- Šajā apmācībā mēs strādāsim operētājsistēmā Windows, tāpēc, lai to piemērotu mūsu piemēros, mēs to darīsim izpildes laikā, lai būtu vieglāk, tomēr, lejupielādējot pakotni, mēs to instalējam, lai tā būtu pieejama mūsu datorā.
3- Tagad mēs pārbaudīsim, vai mūsu datorā viss darbojas pareizi, tāpēc mēs izveidosim nelielu kodu, kurā redzēsim, vai savienotājs / J tika veiksmīgi ielādēts mūsu sistēmā, tāpēc mēs izmantosim šādu kodu:
 public class ConnectionTest {public static void main (String [] args) {try {Klase c = Klase.forName ("com.mysql.jdbc.Driver"); System.out.println ("Ielādēta klase:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- Lai izmantotu šo piemēru, mums ir jāiekļauj atkarība, ieteicams izmantot .jar tajā pašā mūsu faila ceļā TestConexion.java. Ņemot to vērā, mēs turpināsim apkopot savu failu, mēs atveram konsoli un ar norādījumiem javac un pievienojot .jar uz klases ceļš izpildes laikā ar komandu -cp Mēs to varam izdarīt, apskatīsim komandrindu:
 javac -cp mysql-savienotājs-java-5.1.34-bin.jar ConnectionTest.java 

5- Visbeidzot, lai izpildītu mūsu failu, mums ir jāizpilda tikai šāda instrukcija:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Ja mūsu konsolē ir šāds rezultāts, mēs varam sākt strādāt ar operācijām Datu bāzes:

PALIELINĀT

Nākamais solis, kas mums jāveic, ir izveidot efektīvu savienojumu ar mūsu Datu bāze, šim nolūkam mums ir jāizveido tabula ar vismaz vienu tabulu mūsu vietējā serverī, tādā veidā mēs varam veikt dažus testus, lai atvieglotu lietas, mēs izveidojam datubāzi ar nosaukumu pārbaude un mēs izmantojam šādu skriptu, lai izveidotu tabulu un ievietotu dažus testa ierakstus, lai paātrinātu apmācības izstrādi:

IZVEIDOT TABULU, JA NEPASTĀV “lietotāji” (
`id` bigint (20) NOT NULL AUTO_INCREMENT,
"name" varchar (255) NOT NULL,
datuma datums NAV NULL,
"state" int (11) NOT NULL,
PRIMĀRĀ ATSLĒGTA ("id")
) DZINĒJS = InnoDB DEFAULT CHARSET = latīņu1 AUTO_INCREMENT = 3;
INSERT INTO "lietotājiem" ("id", "name", "date", "status") VALUES
(1, “Lietotājs 1”, “2015-01-01”, 1),
(2, “Lietotājs 2”, “2015-01-01”, 1);

Tagad šajā kodā Java mēs koncentrēsimies uz saiknes izveidošanu ar Datu bāze, šim ar a mēģiniet noķert bloku Mēs pārbaudīsim, vai tas ir efektīvs un bez kļūdām, tad, ja savienojums tika izveidots, mēs izdrukāsim veiksmes ziņojumu, redzēsim:
 importēt java.sql.Connection; importēt java.sql.DriverManager; publiskās klases ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "mūsu lietotājs"; private static final String password = "mūsu parole"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (ceļš, lietotājs, parole); System.out.println ("Savienojums veiksmīgs"); } catch (Izņēmums e) {e.printStackTrace (); }}} 

No šī koda mēs redzam, ka mums no paketes jāimportē divas bibliotēkas java.sql, viens ir Savienojums kas ir atbildīgs par visu darbību vadīšanu, lai varētu sazināties ar datu bāzi, bet otra ir Ierīču pārvaldnieks kas ir atbildīgs par veidu, kā mēs ar to sazināsimies. Ja mēs pareizi izpildījām darbības, tad, izpildot savu piemēru konsolē, mums vajadzētu redzēt šādu ziņojumu:

PALIELINĀT

Mums ir viss gatavs, lai sāktu pārbaudīt savus vaicājumus, tāpēc mums būs vajadzīgas vairākas lietas, vispirms mums jau ir objekts, kas izveido savienojumu ar Datu bāze, tad mums būs jāimportē iepakojumi Paziņojums, apgalvojums Y Rezultātu kopa ar kuru mēs vispirms varam nosūtīt vaicājumus un pēc tam saņemt atbildi uz to pašu, beidzot mēs ejam cauri objektam Rezultātu kopa kur mēs parādīsim tabulā ievietotos datus un pirms programmas slēgšanas mums ir jāaizver katrs mūsu izveidotais objekts, tādā veidā mēs garantēsim savu datu integritāti. Apskatīsim kodu, kas parāda izskaidrojumu:
 importēt java.sql.Connection; importēt java.sql.DriverManager; importēt java.sql.ResultSet; importēt java.sql.Pārskats; publiskās klases ConnectionTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "mūsu lietotājs"; private static final String password = "mūsu parole"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (ceļš, lietotājs, parole); Paziņojuma vaicājums = con.createStatement (); System.out.println ("Savienojums veiksmīgs"); ResultSet result = query.executeQuery ("SELECT * FROM users"); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("datums"); System.out.println ("Nosaukums:" + nosaukums + "Ieraksta datums:" + datums); } result.close (); query.close (); con.close (); } catch (Izņēmums e) {e.printStackTrace (); }}} 

Ir svarīgi to pieminēt mūsu atribūtā maršrutu Mēs to esam mainījuši un nosaukumu Datu bāze zvanīt pārbaude Ja mums ir jāizveido mūsu lietotāju tabula, jāapkopo mūsu fails un jāizpilda, konsoles rezultāts būtu tāds, kā redzams šajā attēlā:

PALIELINĀT

Ievērojot savienojuma piemēru un datu bāzes vaicājumus, mēs redzam, ka mums ir jāizmanto skaitlis ar nosaukumu Sagatavot paziņojumu kas atvieglo mūsu darbu, atstājot sagatavotus vaicājumus, lai mēs varētu tos izpildīt vairākas reizes, neveidojot tos atkal un atkal, lai sasniegtu šo dinamiku, mēs aizstājam vērtības, kuras mums ir jāmaina mainīgajiem, un pēc tam, kad izpildām vaicājumu, mēs tam nododam reālās vērtības.
PriekšrocībaTam ir vairākas priekšrocības, mēs jau teicām, ka pirmā ir iespēja kaut ko izmantot, to neatkārtojot, bet tas ir arī drošībai, jo tas ļauj mums izturēties pret vērtībām, kas, iespējams, nāk no lietotāja ievades, lai izvairītos no uzbrukuma mūsu Datu bāze, turklāt mēs varam arī atvieglot mūsu programmas lasāmību.
Šajā piemērā mēs izveidosim vaicājumu ar Sagatavots paziņojums, lai mūsu programmas laikā to varētu izmantot vairākas reizes. Apskatīsim iegūto kodu:
 importēt java.sql.Connection; importēt java.sql.DriverManager; importēt java.sql.ResultSet; importēt java.sql.PreparedStatement; publiskā klase PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "mūsu lietotājs"; private static final String password = "mūsu parole"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (ceļš, lietotājs, parole); PreparedStatement query = con.prepareStatement ("SELECT * FROM users Where id = ?;"); System.out.println ("Savienojums veiksmīgs"); query.setInt (1, 1); ResultSet rezultāts = query.executeQuery (); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("datums"); System.out.println ("Nosaukums:" + nosaukums + "Ieraksta datums:" + datums); } result.close (); query.close (); con.close (); } catch (Izņēmums e) {e.printStackTrace (); }}} 

Mēs pamanām, ka, izmantojot metodi setInt Izmantojot vaicājuma objektu, mēs varam nodot vaicājumam nepieciešamo parametru, ar to mēs varam to atvienot no vaicājuma izpildes, tādējādi iegūstot pārnesamību un lasīšanas vieglumu. Lai pabeigtu, mēs apkopojam un palaižam savu programmu:

PALIELINĀT

Ar to mēs pabeidzam šo apmācību, jo redzam iespējas strādāt Datu bāzes iekšā Java Tie ir ļoti interesanti, jo tie ļauj mūsu lietojumprogrammās iekļaut elastību un daudzpusību, vissvarīgākais ir tas, ka, ja mums ir pieredze ar citām valodām, tā noteikti tiks izmantota šeit.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave