Java DataBase Connectivity

Du kan grunderna i SQL. Det här är bra. Men idag kommer du att må ännu bättre. Idag kommer du att börja lära dig hur du arbetar med en databas från en Java-applikation.

Det finns många olika DBMS, så skaparna av Java bestämde sig för att standardisera hur en Java-applikation fungerar med databaser. Och de kallade denna standard- JDBC : Java DataBase Connectivity .

JDBC har 3 huvudgränssnitt:

  • Anslutning - ansvarig för anslutning till databasen
  • Utlåtande - ansvarig för att förfrågan databasen
  • ResultSet - ansvarig för resultatet av frågan till databasen

Det är faktiskt allt. Och vi kommer inte ens att lära oss alla metoder för alla gränssnitt. Endast fungerande exempel, som vi gradvis kommer att komplicera.

JDBC påminner lite om att arbeta med servlets. Skaparna av JDBC har skrivit flera gränssnitt och kallar det stolt Java DataBase API. Och genomförandet av dessa gränssnitt tilldelades ... skaparna av DBMS. Hur det implementeras där – ingen bryr sig. Fungerar bra.

Det finns fyra versioner av JDBC och vi kommer att titta på den senaste. Och inte för att hon är coolast, utan för att hon är enklast.

JDBC Driver Manager

Java-applikationen och databasen kommunicerar med varandra genom ett bibliotek som kallas JDBC-drivrutinen. Detta är en uppsättning klasser som implementerar JDBC API för en viss DBMS.

Rätt JDBC-drivrutin väljs med en klass som heter DriverManager . Deras interaktion kan representeras enligt följande:

Saken är att du kan använda In-Memory-DB, No-SQL-DB eller till och med en databas inbyggd i en Android-app. Som Java-utvecklare berör dessa nyanser dig inte alls. Drivrutinhanteraren kommer att välja rätt JDBC-drivrutin åt dig och allt kommer att fungera som en klocka.

Förresten, hur gör han det?

Ansluter till MySQL-server

Kommer du ihåg vad du behövde för att ansluta till en lokal SQL-server via MySQL Workbench? Om jag glömde, påminner jag dig om att du behövde tre saker:

  • värd
  • logga in
  • Lösenord

Allt är klart med inloggning och lösenord, och värd, om du kommer ihåg, är namnet på den dator som servern finns på. Om den finns på din lokala dator måste du ange localhost som värdnamn. Tänk om det inte är lokalt?

Då måste du använda ... URL. URL står för Universal Resource Locator . Den kan användas för att ange platsen för vad som helst i nätverket: en webbplats, en skrivare, en SQL-server. Faktum är att URL:en också används för att komma åt den lokala SQL-servern. Det ser ut ungefär så här:

mysql://localhost:3306/db_scheme
  • mysql är ett serverprotokoll
  • localhost - värdnamn på nätverket
  • 3306 - port på vilken förfrågningar görs
  • db_scheme - schemanamn (databasnamn)

Notera. Databasnamnet kan utelämnas. Men om servern lagrar många databasscheman skapas vanligtvis olika användare och olika åtkomsträttigheter för dem. Och om användaren under vilken du loggar in på SQL-servern inte har tillgång till alla databaser, måste du definitivt ange namnet på den specifika databas som du har tillgång till.

I slutet av denna url kan det finnas olika parametrar, kodningstyper, tidszon, som anses vara parametrar för den nya databasanslutningen som upprättas.

Dessutom kan protokollet vara sammansatt. Om all kommunikation med databasservern sker över en krypterad kanal som använder SSH-protokollet, kan URL:en specificeras så här:

ssh:mysql://localhost:3306/db_scheme

Ett protokoll är inte nödvändigtvis ett externt program. Om du till exempel arbetar med en server som använder JNDI-protokollet kan du ange det så här:

jndi:mysql://localhost:3306/db_scheme

Och om du vill arbeta med JDBC API-protokollet måste du skriva så här:

jdbc:mysql://localhost:3306/db_scheme

När du försöker skapa en databasanslutning analyserar JDBC Driver Manager din SQL-db-URL och bestämmer JDBC-drivrutinens namn från protokollnamnet. Här är ett sådant litet trick.