Annons
Java tillhandahåller JDBC (Java DataBase Connectivity) som en del av Java SDK (Software Development Kit). Använda detta API, det är väldigt lätt att ansluta till en relationsdatabas Så vad är en databas, hur som helst? [MakeUseOf Explains]För en programmerare eller en teknikentusiast är begreppet en databas något som man kan ta för givet. Men för många är konceptet med en databas i sig lite främmande ... Läs mer och utföra vanliga operationer såsom fråga, infoga, uppdatera och radera poster.
Medan kärn-JDBC-API ingår i java kräver en anslutning till en viss databas som MySQL eller SQL Server en ytterligare komponent som kallas databasdrivrutinen. Denna databasdrivrutin är en mjukvarukomponent som översätter de centrala JDBC-samtalen till ett format som förstås av den databasen.
Låt oss i den här artikeln titta på detaljerna för att ansluta till en MySQL-databas och hur vi utför några frågor med den.
MySQL-databasdrivrutinen
Som förklarats ovan behöver du JDBC-drivrutinen för MySQL för att kunna ansluta till en MySQL-databas. Detta kallas Connector / J-drivrutinen och kan laddas ner från
MySQL-webbplatsen här.När du har laddat ner ZIP-filen (eller TAR.GZ) -filen drar du ut arkivet och kopierar JAR-filen mysql-connector-java-bin.jar till en lämplig plats. Den här filen krävs för att köra vilken kod som helst som använder MySQL JDBC-drivrutinen.
Skapa en provdatabas
Förutsatt att du har laddat ner MySQL-databasen och ställa in det ordentligt Hur man installerar en MySQL-databas på WindowsOm du ofta skriver applikationer som ansluter 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 den, låt oss skapa en provdatabas så att vi kan använda den för att ansluta och utföra frågor.
Anslut till databasen med en klient som du väljer och kör följande uttalanden för att skapa en exempeldatabas.
skapa databasprov;
Vi behöver också ett användarnamn och lösenord för att kunna ansluta till databasen (såvida du inte vill ansluta som administratör, vilket i allmänhet är en dålig idé).
Följande skapar en användare som heter testuser som kommer att ansluta till MySQL-databasen från samma maskin som den körs (indikeras av lokal värd), med lösenordet securepwd.
skapa användaren 'testuser' @ 'localhost' identifierad med 'securepwd';
Om du ansluter till en databas som körs på en annan maskin (heter remotemc), måste du använda följande (remotemc kan vara ett värdnamn eller en IP-adress):
skapa användaren 'testuser' @ 'remotemc' identifierad med 'securepwd';
Nu när användarnamnet och lösenordet har skapats måste vi ge åtkomst till exempeldatabasen som har skapats tidigare.
bevilja allt på prov. * till 'testuser' @ 'localhost';
Eller om databasen är avlägsen:
bevilja allt på prov. * till 'testuser' @ 'remotemc';
Du bör nu verifiera att du kan anslut till databasen Hur man installerar en MySQL-databas på WindowsOm du ofta skriver applikationer som ansluter 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 som du just skapade med samma lösenord. Du kan också köra följande kommandon efter anslutning för att se till att behörigheterna är korrekta.
skapa tabell joe (id int primär nyckel auto_inkrement, namn varchar (25)); släpp bord joe;
Ställ in Java Class Path
Låt oss nu gå in på detaljer om hur du ansluter till MySQL från Java 10 Core Java-koncept som du bör lära dig när du kommer igångOavsett om du skriver ett GUI, utvecklar serversidan mjukvara eller en mobil applikation med Android, kommer att lära sig Java tjäna dig bra. Här är några grundläggande Java-koncept som hjälper dig komma igång. Läs mer . Det första steget är att ladda databasdrivrutinen. Detta görs genom att åberopa följande på en lämplig plats.
Class.forName ( "com.mysql.jdbc. Förare");
Koden kan kasta ett undantag, så att du kan fånga den om du tänker hantera den (till exempel att formatera felmeddelandet för ett GUI).
prova {Class.forName ("com.mysql.jdbc. Förare"); } catch (ClassNotFoundException ex) {// använd undantaget här. }
Det är mycket vanligt att anropa den här koden i ett statiskt block i klassen så att programmet omedelbart misslyckas om drivrutinen inte kan laddas.
Exempel på offentlig klass. {statisk {försök {Class.forName ("com.mysql.jdbc. Förare"); } catch (ClassNotFoundException ex) {System.err.println ("Kan inte ladda MySQL Driver"); } } }
Naturligtvis, för att kunna hitta drivrutinen, måste programmet anropas med drivrutinen JAR (laddas ner och extraheras ovan) ingår i klassvägen enligt följande.
java -cp mysql-kontakt-java--bin.jar:...
Ansluter till MySQL Från Java
Nu när vi har kvadratat bort detaljerna för att ladda MySQL-drivrutinen från java, låt oss ansluta till databasen. Ett sätt att skapa en databasanslutning för att använda Driver.
Sträng jdbcUrl =...; Anslutning con = DriverManager.getConnection (jdbcUrl);
Och vad är det jdbcUrl? Det anger informationen om anslutningen, inklusive servern där databasen finns, användarnamn och så vidare. Här är ett exempel på en URL 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. (Att inkludera lösenordet som detta är INTE en bra praxis, se nedan för alternativ.)
Använda detta jdbcUrl, här är ett komplett program för att kontrollera anslutningen.
Exempel på offentlig klass. {statisk {försök {Class.forName ("com.mysql.jdbc. Förare"); } catch (ClassNotFoundException ex) {System.err.println ("Kan inte ladda MySQL Driver"); }} statisk tom tom huvud (String [] args) kastar 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 värdefull resurs i ett program och måste stängas ordentligt som ovan. Ovanstående kod stänger dock inte anslutningen vid undantag. För att stänga anslutningen vid en normal eller onormal utgång, använd följande mönster:
prova (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 URL. För att ange användarnamn och lösenord direkt kan du använda följande anslutningsalternativ istället.
String jdbcUrl = "jdbc: mysql: // localhost / sample"; prova (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd")) { }
Fråga databasen från Java
Nu när anslutningen till databasen har upprättats, låt oss se hur man utför en fråga, till exempel fråga databasversionen:
välj version ();
En fråga körs i java enligt följande. EN Påstående objekt skapas och en fråga körs med 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 hänvisar till index för kolumnen i resultaten från 1.
while (rset.next ()) {System.out.println ("Version:" + rset.getString (1)); }
Efter bearbetning av 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.