Pagkakakonekta ng Java DataBase

Alam mo ang mga pangunahing kaalaman ng SQL. Mabuti ito. Ngunit sa araw na ito ay mas gaganda ang iyong pakiramdam. Ngayon ay magsisimula kang matutunan kung paano magtrabaho sa isang database mula sa isang Java application.

Maraming iba't ibang DBMS, kaya nagpasya ang mga tagalikha ng Java na i-standardize kung paano gumagana ang isang Java application sa mga database. At tinawag nila ang pamantayang ito - JDBC : Java DataBase Connectivity .

Ang JDBC ay may 3 pangunahing interface:

  • Koneksyon - responsable para sa pagkonekta sa database
  • Pahayag - responsable para sa pagtatanong sa database
  • ResultSet - responsable para sa resulta ng query sa database

Sa katunayan, iyon lang. At hindi namin matutunan ang lahat ng mga pamamaraan ng lahat ng mga interface. Tanging mga gumaganang halimbawa, na unti-unti nating gagawing kumplikado.

Ang JDBC ay medyo katulad sa pagtatrabaho sa mga servlet. Ang mga tagalikha ng JDBC ay nagsulat ng ilang mga interface at buong pagmamalaki na tinawag itong Java DataBase API. At ang pagpapatupad ng mga interface na ito ay itinalaga sa ... ang mga tagalikha ng DBMS. Kung paano ito ipinatupad doon - walang nagmamalasakit. Gumagana nang maayos.

Mayroong apat na bersyon ng JDBC at titingnan namin ang pinakabago. At hindi dahil siya ang pinaka-cool, kundi dahil siya ang pinakasimple.

Tagapamahala ng Driver ng JDBC

Ang Java application at ang database ay nakikipag-usap sa isa't isa sa pamamagitan ng isang library na tinatawag na JDBC Driver. Ito ay isang hanay ng mga klase na nagpapatupad ng JDBC API para sa isang partikular na DBMS.

Ang tamang driver ng JDBC ay pinili gamit ang isang klase na tinatawag na DriverManager . Ang kanilang pakikipag-ugnayan ay maaaring ilarawan bilang mga sumusunod:

Ang bagay ay, maaari mong gamitin ang In-Memory-DB, No-SQL-DB, o kahit isang database na binuo sa isang Android app. Bilang isang developer ng Java, ang mga nuances na ito ay hindi nag-aalala sa iyo. Pipiliin ng Driver Manager ang tamang JDBC driver para sa iyo at lahat ay gagana tulad ng clockwork.

By the way, paano niya ito ginagawa?

Kumokonekta sa MySQL server

Tandaan kung ano ang kailangan mong kumonekta sa isang lokal na SQL server sa pamamagitan ng MySQL Workbench? Kung nakalimutan ko, ipaalala ko sa iyo, kailangan mo ng tatlong bagay:

  • host
  • mag log in
  • password

Malinaw ang lahat sa pag-login at password, at ang host, kung naaalala mo, ay ang pangalan ng computer kung saan matatagpuan ang server. Kung ito ay matatagpuan sa iyong lokal na computer, kailangan mong tukuyin ang localhost bilang pangalan ng host. Paano kung hindi ito lokal?

Pagkatapos ay kailangan mong gumamit ng ... URL. Ang URL ay nangangahulugang Universal Resource Locator . Maaari itong magamit upang tukuyin ang lokasyon ng anumang bagay sa network: isang site, isang printer, isang SQL server. Sa katunayan, ginagamit din ang URL upang ma-access ang lokal na SQL server. Mukhang ganito:

mysql://localhost:3306/db_scheme
  • Ang mysql ay isang server protocol
  • localhost - hostname sa network
  • 3306 - port kung saan ginawa ang mga kahilingan
  • db_scheme - pangalan ng schema (pangalan ng database)

Tandaan. Maaaring tanggalin ang pangalan ng database. Ngunit kung ang server ay nag-iimbak ng maraming mga schema ng database, kadalasan ay iba't ibang mga user at iba't ibang mga karapatan sa pag-access ang nilikha para sa kanila. At kung ang gumagamit kung saan ka nag-log in sa SQL server ay walang access sa lahat ng mga database, tiyak na kailangan mong tukuyin ang pangalan ng partikular na database kung saan mayroon kang access.

Sa dulo ng url na ito ay maaaring mayroong iba't ibang mga parameter, mga uri ng pag-encode, timezone, na itinuturing na mga parameter para sa bagong koneksyon sa database na itinatag.

Gayundin, ang protocol ay maaaring pinagsama-sama. Kung ang lahat ng komunikasyon sa database server ay nasa isang naka-encrypt na channel gamit ang SSH protocol, maaaring tukuyin ang URL tulad nito:

ssh:mysql://localhost:3306/db_scheme

Ang isang protocol ay hindi kinakailangang isang panlabas na programa. Halimbawa, kung nagtatrabaho ka sa isang server gamit ang JNDI protocol, maaari mo itong tukuyin tulad nito:

jndi:mysql://localhost:3306/db_scheme

At kung gusto mong magtrabaho gamit ang JDBC API protocol, kailangan mong magsulat ng ganito:

jdbc:mysql://localhost:3306/db_scheme

Kapag sinubukan mong lumikha ng koneksyon sa database, i-parse ng JDBC Driver Manager ang iyong SQL-db-URL at tinutukoy ang pangalan ng driver ng JDBC mula sa pangalan ng protocol. Narito ang isang maliit na trick.