Advertentie
Java biedt JDBC (Java DataBase-connectiviteit) als onderdeel van de Java SDK (Software Development Kit). Dit gebruiken API, is het heel eenvoudig om verbinding te maken met een relationele database Dus wat is een database eigenlijk? [MakeUseOf Explains]Voor een programmeur of een technologieliefhebber is het concept van een database iets dat vanzelfsprekend is. Voor veel mensen is het concept van een database echter een beetje vreemd ... Lees verder en voer algemene bewerkingen uit zoals het opvragen, invoegen, bijwerken en verwijderen van records.
Hoewel de kern-JDBC-API in Java is opgenomen, vereist het verbinden met een bepaalde database zoals MySQL of SQL Server een extra component, het databasestuurprogramma. Dit databasestuurprogramma is een softwarecomponent die de belangrijkste JDBC-aanroepen vertaalt naar een formaat dat door die database wordt begrepen.
Laten we in dit artikel kijken naar de details van het verbinden met een MySQL-database en hoe je er een paar zoekopdrachten mee kunt uitvoeren.
Het MySQL-databasestuurprogramma
Zoals hierboven uitgelegd, heeft u het JDBC-stuurprogramma voor MySQL nodig om verbinding te kunnen maken met een MySQL-database. Dit wordt het Connector / J-stuurprogramma genoemd en kan worden gedownload van de MySQL-site hier.
Zodra je het ZIP- (of TAR.GZ) -bestand hebt gedownload, pak je het archief uit en kopieer je het JAR-bestand mysql-connector-java – bin.jar naar een geschikte locatie. Dit bestand is vereist voor het uitvoeren van code die het MySQL JDBC-stuurprogramma gebruikt.
Een voorbeelddatabase maken
Ervan uitgaande dat u de MySQL-database hebt gedownload en stel het correct in Hoe een MySQL-database op Windows te installerenAls u vaak applicaties schrijft die verbinding maken met databaseservers, is het prettig als u weet hoe u een MySQL-database op uw Windows-machine moet installeren voor testdoeleinden. Lees verder waar u er toegang toe heeft, laten we een voorbeelddatabase maken zodat we deze kunnen gebruiken voor het verbinden en uitvoeren van vragen.
Maak verbinding met de database met een client naar keuze en voer de volgende instructies uit om een voorbeelddatabase te maken.
database-voorbeeld maken;
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 aan testgebruiker die verbinding maakt met de MySQL-database vanaf dezelfde computer waarop deze wordt uitgevoerd (aangegeven door localhost), met behulp van het wachtwoord securepwd.
maak gebruiker 'testuser' @ 'localhost' aan, geïdentificeerd door 'securepwd';
Als u verbinding maakt met een database die op een andere computer wordt uitgevoerd (genaamd afgelegen), moet u het volgende gebruiken (afgelegen kan een hostnaam of een IP-adres zijn):
maak gebruiker 'testuser' @ 'remotemc' geïdentificeerd door 'securepwd';
Nu de gebruikersnaam en het wachtwoord zijn aangemaakt, moeten we toegang verlenen tot de voorbeelddatabase die eerder is gemaakt.
geef alles op sample. * aan 'testuser' @ 'localhost';
Of, als de database op afstand is:
geef alles op sample. * aan 'testuser' @ 'remotemc';
Je moet nu verifiëren dat je het kunt maak verbinding met de database Hoe een MySQL-database op Windows te installerenAls u vaak applicaties schrijft die verbinding maken met databaseservers, is het prettig als u weet hoe u een MySQL-database op uw Windows-machine moet installeren voor testdoeleinden. Lees verder als de gebruiker die u zojuist hebt gemaakt met hetzelfde wachtwoord. U kunt na het verbinden ook de volgende opdrachten uitvoeren om er zeker van te zijn dat alle rechten correct zijn.
maak table joe (id in primaire sleutel auto_increment, naam varchar (25)); drop tafel Joe;
Stel Java Class Path in
Laten we nu ingaan op de details van hoe u verbinding kunt maken met MySQL Java 10 basis Java-concepten die u moet leren wanneer u aan de slag gaatOf u nu een GUI schrijft, serversoftware ontwikkelt of een mobiele applicatie gebruikt met Android, Java leren zal u goed van pas komen. Hier zijn enkele basis Java-concepten om u op weg te helpen. Lees verder . De eerste stap is het laden van het databasestuurprogramma. Dit doet u door op een geschikte locatie het volgende op te roepen.
Class.forName ("com.mysql.jdbc. Bestuurder");
De code kan een uitzondering opleveren, dus u kunt deze opvangen als u van plan bent ermee om te gaan (zoals het formatteren van het foutbericht voor een GUI).
probeer {Class.forName ("com.mysql.jdbc. Bestuurder"); } catch (ClassNotFoundException ex) {// gebruik hier de uitzondering. }
Het is heel gebruikelijk om deze code aan te roepen in een statisch blok in de klasse, zodat het programma onmiddellijk faalt als de driver niet kan worden geladen.
openbare klasse Sample. {statisch {probeer {Class.forName ("com.mysql.jdbc. Bestuurder"); } catch (ClassNotFoundException ex) {System.err.println ("Kan MySQL-stuurprogramma niet laden"); } } }
Om de driver te kunnen vinden, moet het programma natuurlijk als volgt worden aangeroepen met de driver-JAR (hierboven gedownload en uitgepakt) in het klassenpad.
java -cp mysql-connector-java--bin.jar:...
Verbinding maken met MySQL vanuit Java
Nu we de details van het laden van de MySQL-driver uit Java hebben weggewerkt, gaan we verbinding maken met de database. Een manier om een databaseverbinding te maken is om de DriverManager.
String jdbcUrl =...; Verbinding con = DriverManager.getConnection (jdbcUrl);
En wat is de 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? gebruiker = testgebruiker & wachtwoord = secrepwd ";
Merk op dat we alle parameters die nodig zijn voor verbinding hebben opgenomen, inclusief de hostnaam (localhost), gebruikersnaam en wachtwoord. (Het opnemen van dit wachtwoord is GEEN goede gewoonte, zie hieronder voor alternatieven.)
Dit gebruiken jdbcUrl, hier is een compleet programma om de connectiviteit te controleren.
openbare klasse Sample. {statisch {probeer {Class.forName ("com.mysql.jdbc. Bestuurder"); } catch (ClassNotFoundException ex) {System.err.println ("Kan MySQL-stuurprogramma niet laden"); }} statische openbare leegte main (String [] args) gooit Uitzondering {String jdbcUrl = "jdbc: mysql: // localhost / sample? gebruiker = testgebruiker & wachtwoord = securepwd "; Verbinding con = DriverManager.getConnection (jdbcUrl); System.out.println ("Verbonden!"); con.close (); } }
Merk op dat een databaseverbinding een kostbare hulpbron is in een programma en correct moet worden gesloten zoals hierboven. De bovenstaande code sluit de verbinding echter niet in geval van een uitzondering. Gebruik het volgende patroon om de verbinding op een normale of abnormale uitgang te sluiten:
probeer (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"; probeer (Verbinding con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd")) { }
De database opvragen vanuit Java
Nu de verbinding met de database tot stand is gebracht, gaan we kijken hoe we een query moeten 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 de executeQuery () methode die een Resultaatset.
String queryString = "select version ()"; Verklaring stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString);
Druk de versie af vanaf de Resultaatset als volgt. 1 verwijst naar de index van de kolom in de resultaten, beginnend vanaf 1.
terwijl (rset.next ()) {System.out.println ("Version:" + rset.getString (1)); }
Na verwerking van de resultaten moeten de objecten worden gesloten.
rset.close (); stmt.close ();
En dat omvat alles wat er is om vanuit Java verbinding te maken met MySQL en een eenvoudige query uit te voeren.
Heeft u JDBC met MySQL gebruikt in uw projecten? Welke problemen had u, indien aanwezig, met databases en Java? Laat het ons weten in de reacties hieronder.