Java DataBase-tilkobling

Du kan det grunnleggende om SQL. Dette er bra. Men i dag vil du føle deg enda bedre. I dag skal du begynne å lære hvordan du jobber med en database fra en Java-applikasjon.

Det finnes mange forskjellige DBMS, så skaperne av Java bestemte seg for å standardisere hvordan en Java-applikasjon fungerer med databaser. Og de kalte denne standarden - JDBC : Java DataBase Connectivity .

JDBC har 3 hovedgrensesnitt:

  • Tilkobling - ansvarlig for å koble til databasen
  • Statement - ansvarlig for spørring i databasen
  • ResultSet - ansvarlig for resultatet av spørringen til databasen

Faktisk er det alt. Og vi vil ikke engang lære alle metodene for alle grensesnitt. Bare fungerende eksempler, som vi gradvis vil komplisere.

JDBC ligner litt på å jobbe med servlets. Skaperne av JDBC har skrevet flere grensesnitt og kaller det stolt Java DataBase API. Og implementeringen av disse grensesnittene ble tildelt ... skaperne av DBMS. Hvordan det implementeres der – ingen bryr seg. Fungerer fint.

Det er fire versjoner av JDBC, og vi skal se på den nyeste. Og ikke fordi hun er den kuleste, men fordi hun er den enkleste.

JDBC Driver Manager

Java-applikasjonen og databasen kommuniserer med hverandre gjennom et bibliotek kalt JDBC-driveren. Dette er et sett med klasser som implementerer JDBC API for en bestemt DBMS.

Riktig JDBC-driver velges ved å bruke en klasse kalt DriverManager . Samspillet deres kan representeres som følger:

Saken er at du kan bruke In-Memory-DB, No-SQL-DB, eller til og med en database innebygd i en Android-app. Som Java-utvikler angår ikke disse nyansene deg i det hele tatt. Driver Manager vil velge riktig JDBC-driver for deg og alt vil fungere som smurt.

Forresten, hvordan gjør han det?

Kobler til MySQL-server

Husker du hva du trengte for å koble til en lokal SQL-server gjennom MySQL Workbench? Hvis jeg glemte det, minner jeg deg på at du trengte tre ting:

  • vert
  • Logg Inn
  • passord

Alt er klart med pålogging og passord, og vert, hvis du husker det, er navnet på datamaskinen som serveren er plassert på. Hvis den er plassert på din lokale datamaskin, må du spesifisere localhost som vertsnavn. Hva om det ikke er lokalt?

Da må du bruke ... URL. URL står for Universal Resource Locator . Den kan brukes til å spesifisere plasseringen av alt på nettverket: et nettsted, en skriver, en SQL-server. Faktisk brukes URL-en også for å få tilgang til den lokale SQL-serveren. Det ser omtrent slik ut:

mysql://localhost:3306/db_scheme
  • mysql er en serverprotokoll
  • localhost - vertsnavn på nettverket
  • 3306 - port som forespørsler gjøres på
  • db_scheme - skjemanavn (databasenavn)

Merk. Databasenavnet kan utelates. Men hvis serveren lagrer mange databaseskjemaer, opprettes vanligvis forskjellige brukere og forskjellige tilgangsrettigheter for dem. Og hvis brukeren du logger på SQL-serveren under ikke har tilgang til alle databaser, må du definitivt spesifisere navnet på den spesifikke databasen du har tilgang til.

På slutten av denne url-en kan det være ulike parametere, kodingstyper, tidssone, som anses som parametere for den nye databasetilkoblingen som etableres.

Dessuten kan protokollen være sammensatt. Hvis all kommunikasjon med databaseserveren er over en kryptert kanal ved bruk av SSH-protokollen, kan URL-en spesifiseres slik:

ssh:mysql://localhost:3306/db_scheme

En protokoll er ikke nødvendigvis et eksternt program. Hvis du for eksempel jobber med en server som bruker JNDI-protokollen, kan du spesifisere den slik:

jndi:mysql://localhost:3306/db_scheme

Og hvis du vil jobbe med JDBC API-protokollen, må du skrive slik:

jdbc:mysql://localhost:3306/db_scheme

Når du prøver å opprette en databasetilkobling, analyserer JDBC Driver Manager din SQL-db-URL og bestemmer JDBC-drivernavnet fra protokollnavnet. Her er et lite triks.