Verbinding maken met een MySQL-database met Java

Verbinding maken met een MySQL-database met Java / Programming

Java biedt JDBC (Java DataBase Connectivity) als onderdeel van de Java SDK (Software Development Kit). Met behulp van deze API is het heel gemakkelijk om verbinding te maken met een relationele database So What Is a Database, Anyway? [MakeUseOf Explains] Dus wat is een database eigenlijk? [MakeUseOf Explains] Voor een programmeur of een technologie-liefhebber is het concept van een database iets dat echt als vanzelfsprekend kan worden beschouwd. Voor veel mensen is het concept van een database zelf echter een beetje vreemd ... Lees meer en voer veelgebruikte bewerkingen uit, zoals query's, invoegen, bijwerken en verwijderen van records.

Hoewel de kern JDBC-API is opgenomen in java, is voor het verbinden met een bepaalde database, zoals MySQL of SQL Server, een extra onderdeel vereist dat de databasestuurprogramma wordt genoemd. Deze databasestuurprogramma is een softwarecomponent die de kern JDBC-oproepen omzet in een indeling die door die database wordt begrepen.

Laten we in dit artikel de details bekijken van het verbinden met een MySQL-database en het uitvoeren van enkele vragen.

Het MySQL-databasestuurprogramma

Zoals hierboven uitgelegd, hebt u voor het kunnen verbinden met een MySQL-database het JDBC-stuurprogramma voor MySQL nodig. Dit wordt het Connector / J-stuurprogramma genoemd en kan hier worden gedownload van de MySQL-site.

Nadat u het ZIP (of TAR.GZ) -bestand hebt gedownload, pakt u het archief uit en kopieert u het JAR-bestand mysql-connector-java-bin.jar naar een geschikte locatie. Dit bestand is vereist voor het uitvoeren van elke code die het MySQL JDBC-stuurprogramma gebruikt.

Een voorbeelddatabase maken

Ervan uitgaande dat u de MySQL-database hebt gedownload en correct hebt ingesteld Hoe u een MySQL-database op Windows installeert Hoe u een MySQL-database op Windows installeert Als u vaak toepassingen schrijft die verbinding maken met databaseservers, is het handig als u weet hoe u een MySQL-database moet installeren op uw Windows-computer voor testdoeleinden. Lees Meer waar u toegang toe hebt, laat ons een voorbeelddatabase maken zodat we deze kunnen gebruiken voor het verbinden en uitvoeren van vragen.

Maak verbinding met de database met een client van uw keuze en voer de volgende instructies uit om een ​​voorbeelddatabase te maken.

maak databasemonster aan; 

We hebben ook een gebruikersnaam en wachtwoord nodig om verbinding te kunnen maken met de database (tenzij u verbinding wilt maken als beheerder, wat over het algemeen een slecht idee is).

Het volgende maakt een gebruiker met de naam testuser die verbinding zal maken met de MySQL-database vanaf dezelfde computer waarop het actief is (aangegeven met localhost), met behulp van het wachtwoord securepwd.

maak gebruiker 'testuser' @ 'localhost' geïdentificeerd door 'securepwd'; 

Als u verbinding maakt met een database die op een andere computer draait (named remotemc), moet u het volgende gebruiken (remotemc kan een hostnaam of een ip-adres zijn):

maak gebruiker 'testuser' @ 'remotemc' geïdentificeerd door 'securepwd'; 

Nu de gebruikersnaam en het wachtwoord zijn gemaakt, moeten we toegang verlenen tot de voorbeelddatabase die eerder is gecreameerd.

geef alles op sample. * aan 'testuser' @ 'localhost'; 

Of, als de database op afstand is:

geef alles op sample. * aan 'testuser' @ 'remotemc'; 

U moet nu controleren of u verbinding kunt maken met de database. Een MySQL-database installeren op Windows Hoe een MySQL-database op Windows te installeren Als u vaak toepassingen schrijft die verbinding maken met databaseservers, is het handig als u weet hoe u een MySQL-database installeert op uw Windows-machine voor testdoeleinden. Lees Meer als de gebruiker die u zojuist hebt gemaakt met hetzelfde wachtwoord. U kunt ook de volgende opdrachten uitvoeren nadat u verbinding hebt gemaakt, om ervoor te zorgen dat de rechten allemaal correct zijn.

create table joe (id int primaire sleutel auto_increment, naam varchar (25)); afzettafel Joe; 

Java-klassenpad instellen

Laten we nu ingaan op de details van hoe je verbinding kunt maken met MySQL vanuit Java 10 Core Java Concepts. Je moet leren bij het begin 10 Kern Java-concepten die je moet leren wanneer je aan de slag gaat Of je nu een GUI schrijft, software aan de server ontwikkelt of een mobiele applicatie met Android, het leren van Java zal je goed van pas komen. Hier zijn enkele kern-Java-concepten om u te helpen aan de slag te gaan. Lees verder . De eerste stap is om het databasestuurprogramma te laden. Dit gebeurt door het volgende op een geschikte locatie in te roepen.

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

De code kan een uitzondering opleveren, zodat u deze kunt vangen als u hiermee wilt werken (zoals het formatteren van het foutbericht voor een GUI).

probeer Class.forName ("com.mysql.jdbc.Driver");  catch (ClassNotFoundException ex) // gebruik de uitzondering hier 

Het is heel gebruikelijk om deze code aan te roepen in een statisch blok in de klasse, dus het programma mislukt onmiddellijk als het stuurprogramma niet kan worden geladen.

public class Sample static try Class.forName ("com.mysql.jdbc.Driver");  catch (ClassNotFoundException ex) System.err.println ("Kan MySQL-stuurprogramma niet laden");  

Om de driver te kunnen vinden, moet het programma natuurlijk worden aangeroepen met de JAR-driver (gedownload en uitgepakt hierboven) die als volgt in het klassenpad is opgenomen.

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

Verbinding maken met MySQL vanuit Java

Nu we de details van het laden van het MySQL-stuurprogramma van java hebben weggewerkt, laten we ons verbinden met de database. Een manier om een ​​databaseverbinding tot stand te brengen is om de DriverManager.

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

En wat is het jdbcUrl? Het geeft de details van de verbinding aan, inclusief de server waar de database zich bevindt, gebruikersnaam enzovoort. Hier is een voorbeeld-URL voor ons voorbeeld.

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

Merk op dat we alle parameters voor verbinding hebben opgenomen, inclusief de hostnaam (localhost), gebruikersnaam en wachtwoord. (Inclusief het wachtwoord als dit is GEEN goede werkwijze, zie hieronder voor alternatieven.)

Dit gebruiken jdbcUrl, hier is een compleet programma om de connectiviteit te controleren.

public class Sample static try Class.forName ("com.mysql.jdbc.Driver");  catch (ClassNotFoundException ex) System.err.println ("Kan MySQL-stuurprogramma niet laden");  static public void main (String [] args) gooit Exception String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = secureepwd"; Verbinding con = DriverManager.getConnection (jdbcUrl); System.out.println ( "Connected!"); con.close ();  

Houd er rekening mee dat een databaseverbinding een waardevolle hulpbron in een programma is en op de juiste manier moet worden gesloten, zoals hierboven. De bovenstaande code sluit echter niet de verbinding in het geval van een uitzondering. Gebruik het volgende patroon om de verbinding bij een normale of abnormale uitgang te sluiten:

try (Connection con = DriverManager.getConnection (jdbcUrl)) System.out.println ("Connected!");  

Zoals hierboven vermeld, is het een slecht idee om het wachtwoord in de JDBC-URL in te sluiten. Om de gebruikersnaam en het wachtwoord rechtstreeks op te geven, kunt u in plaats daarvan de volgende verbindingsoptie gebruiken.

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

Database uit Java opvragen

Nu de verbinding met de database tot stand is gebracht, kunnen we een query uitvoeren, zoals het opvragen van de databaseversie:

selecteer versie (); 

Een query wordt als volgt in Java uitgevoerd. EEN Uitspraak object wordt gemaakt en een query wordt uitgevoerd met behulp van de executeQuery () methode die a retourneert ResultSet.

String queryString = "select version ()"; Verklaring stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString); 

Print de versie van de ResultSet als volgt. 1 verwijst naar index van de kolom in de resultaten, beginnend vanaf 1.

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

Nadat de resultaten zijn verwerkt, moeten de objecten worden gesloten.

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

En dat omvat alles wat er is om vanaf Java verbinding te maken met MySQL en een eenvoudige query uit te voeren.

Heeft u JDBC met MySQL gebruikt in uw projecten? Welke eventuele problemen had u met databases en java? Laat het ons weten in de comments hieronder.

Ontdek meer over: Java, SQL.