Så här ansluter du till en MySQL-databas med Java

Så här ansluter du till en MySQL-databas med Java / Programmering

Java tillhandahåller JDBC (Java DataBase Connectivity) som en del av Java SDK (Software Development Kit). Med hjälp av detta API är det väldigt enkelt att ansluta till en relationsdatabas Så vad är en databas, hur som helst? [MakeUseOf Explains] Så vad är en databas, hur som helst? [MakeUseOf Förklarar] För en programmerare eller en teknikentusiast är begreppet en databas något som verkligen kan tas för givet. Men för många människor är begreppet en databas i sig lite utländsk ... Läs mer och utför vanliga funktioner som att fråga, infoga, uppdatera och radera poster.

Medan core JDBC API ingår i Java krävs en extra komponent som kallas databasdrivrutinen för att ansluta till en viss databas som MySQL eller SQL Server. Denna databasdrivrutin är en mjukvarukomponent som översätter de centrala JDBC-samtalen till ett format som förstås av databasen.

I den här artikeln, låt oss titta på detaljerna för anslutning till en MySQL-databas och hur man utför några frågor med den.

MySQL-databasdrivrutinen

Som förklarat ovan, för att kunna ansluta till en MySQL-databas, behöver du JDBC-drivrutinen för MySQL. Detta kallas Connector / J-drivrutinen och kan hämtas från MySQL-webbplatsen här.

När du har laddat ner ZIP-filen (eller TAR.GZ), ta ut arkivet och kopiera JAR-filen mysql-connector-java-bin.jar till en lämplig plats. Den här filen krävs för att köra någon kod som använder MySQL JDBC-drivrutinen.

Skapa en provdatabas

Anta att du har laddat ner MySQL-databasen och ställt upp den korrekt. Hur installerar en MySQL-databas på Windows Så här installerar du en MySQL-databas på Windows Om du ofta skriver program som kopplar till databasservrar är det trevligt om du vet hur du installerar en MySQL-databas på din Windows-maskin för teständamål. Läs mer där du har tillgång till det, låt oss skapa en databas så att vi kan använda den för att ansluta och utföra frågor.

Anslut till databasen med en klient efter eget val och kör följande uttalanden för att skapa en provdatabas.

skapa databasprov; 

Vi behöver också ett användarnamn och lösenord för att kunna ansluta till databasen (om du inte vill ansluta som administratör, vilket vanligtvis är en dålig idé).

Följande skapar en användare som heter testuser vem kommer att ansluta till MySQL-databasen från samma maskin där den körs (anges av lokal värd), med lösenordet securepwd.

skapa användarens testuser '@' localhost 'identifierat av' securepwd '; 

Om du ansluter till en databas som körs på en annan maskin (namngiven remotemc), måste du använda följande (remotemc kan vara ett värdnamn eller en ip-adress):

skapa användarens testuser '@' remotemc 'identifierad av' securepwd '; 

Nu när användarnamnet och lösenordet har skapats måste vi ge tillgång till den exempeldatabas som skapats tidigare.

bevilja allt på prov. * till "testuser" @ "localhost"; 

Eller om databasen är fjärrkontroll:

bevilja allt på prov. * till "testuser" @ "remotemc"; 

Du bör nu verifiera att du kan ansluta till databasen Hur man installerar en MySQL-databas på Windows Så här installerar du en MySQL-databas på Windows Om du ofta skriver program som kopplar till databasservrar är det trevligt om du vet hur du installerar en MySQL-databas på din Windows-maskin för teständamål. Läs mer som den användare du just skapat med samma lösenord. Du kan även köra följande kommandon efter anslutning, för att säkerställa att behörigheterna är korrekta.

skapa tabelljoe (id int primär nyckel auto_increment, namn varchar (25)); drop table Joe; 

Konfigurera Java-klassväg

Låt oss nu komma in i detaljerna om hur du ansluter till MySQL från Java 10 Core Java Concepts Du bör lära dig när du kommer igång 10 Core Java Concepts Du bör lära dig när du kommer igång Oavsett om du skriver en GUI, utvecklar serverns program eller en mobilapplikation med Android, lär Java att fungera bra. Här är några grundläggande Java-koncept för att hjälpa dig att komma igång. Läs mer . Det första steget är att ladda databasdrivrutinen. Detta görs genom att anropa följande på ett lämpligt ställe.

Class.forName ( "com.mysql.jdbc.Driver"); 

Koden kan göra ett undantag så att du kan fånga det om du tänker hantera det (t.ex. att formatera felmeddelandet för en GUI).

försök Class.forName ("com.mysql.jdbc.Driver");  fånga (ClassNotFoundException ex) // använd undantaget här 

Det är väldigt vanligt att anropa denna kod i ett statiskt block i klassen, så programmet misslyckas omedelbart om föraren inte kan laddas.

public class Sample static försök Class.forName ("com.mysql.jdbc.Driver");  fångst (ClassNotFoundException ex) System.err.println ("Kan inte ladda MySQL Driver");  

För att kunna hitta föraren måste programmet naturligtvis åberopas med föraren JAR (nedladdad och extraherad ovan) som ingår i klassväggen enligt följande.

java -cp mysql-connector-java--bin.jar: ...  

Anslut till MySQL från Java

Nu när vi har kvadrat detaljerna om att ladda MySQL-drivrutinen från Java, låt oss ansluta till databasen. Ett sätt att skapa en databasförbindelse för att använda Driver.

String jdbcUrl = ...; Anslutning con = DriverManager.getConnection (jdbcUrl); 

Och vad är det jdbcUrl? Den anger anslutningens detaljer, inklusive servern där databasen finns, användarnamn och så vidare. Här är en urvalsadress för vårt exempel.

String jdbcUrl = "jdbc: mysql: // localhost / sample? User = testuser & password = secrepwd"; 

Observera att vi har inkluderat alla parametrar som krävs för anslutning, inklusive värdnamnet (lokal värd), användarnamn och lösenord. (Inklusive lösenordet som detta är INTE en bra metod, se nedan för alternativ.)

Använda detta jdbcUrl, Här är ett komplett program för att kontrollera anslutning.

public class Sample static försök Class.forName ("com.mysql.jdbc.Driver");  fångst (ClassNotFoundException ex) System.err.println ("Kan inte ladda MySQL Driver");  statisk public void main (String [] args) slår undantag String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = securepwd"; Anslutning con = DriverManager.getConnection (jdbcUrl); System.out.println ( "kontakten!"); con.close ();  

Observera att en databasanslutning är en dyrbar resurs i ett program och måste stängas ordentligt som ovan. Ovanstående kod stänger dock inte anslutningen om ett undantag föreligger. För att stänga anslutningen på en normal eller onormal utgång, använd följande mönster:

försök (Connection con = DriverManager.getConnection (jdbcUrl)) System.out.println ("Connected!");  

Som nämnts ovan är det en dålig idé att bädda in lösenordet i JDBC-webbadressen. För att ange användarnamnet och lösenordet direkt kan du använda följande anslutningsalternativ istället.

String jdbcUrl = "jdbc: mysql: // localhost / sample"; försök (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd"))  

Fråga databasen från Java

Nu när anslutningen till databasen är etablerad, låt oss se hur du utför en fråga, till exempel frågar databasversionen:

välj version (); 

En fråga utförs i Java enligt följande. en Påstående objekt skapas och en fråga utförs med hjälp av executeQuery () metod som returnerar a Resultatet satt.

String queryString = "välj version ()"; Uttalande stmt = con.createStatement (); ResultatSet rset = stmt.executeQuery (queryString); 

Skriv ut versionen från Resultatet satt som följer. 1 refererar till kolumnindex i resultaten, från och med 1.

medan (rset.next ()) System.out.println ("Version:" + rset.getString (1));  

Efter att ha bearbetat resultaten måste objekten stängas.

rset.close (); stmt.close (); 

Och det täcker allt som finns att ansluta till MySQL från Java och utföra en enkel fråga.

Har du använt JDBC med MySQL i dina projekt? Vilka problem, om några, hade du med databaser och java? Vänligen meddela oss i kommentarerna nedan.

Utforska mer om: Java, SQL.