Verbinding maken met een MySQL-database met Java

Verbinding maken met een MySQL-database met Java

Java biedt JDBC (Java DataBase-connectiviteit) als onderdeel van de Java SDK (Software Development Kit). Dit gebruiken VUUR , is het heel eenvoudig om verbinding te maken met een relationele database en algemene bewerkingen uit te voeren, 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 die bekend staat als het databasestuurprogramma. Dit databasestuurprogramma is een softwarecomponent die de belangrijkste JDBC-aanroepen vertaalt naar een formaat dat door die database wordt begrepen.





hoe nummers zichtbaar te maken op Spotify

Laten we in dit artikel eens kijken naar de details van het verbinden met een MySQL-database en hoe we er een paar query's mee kunnen uitvoeren.





Het MySQL-databasestuurprogramma

Zoals hierboven uitgelegd, hebt u de JDBC-driver 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.

Nadat u het ZIP-bestand (of TAR.GZ) 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 code die gebruikmaakt van het MySQL JDBC-stuurprogramma.



Een voorbeelddatabase maken

Ervan uitgaande dat u de MySQL-database hebt gedownload en stel het goed in waar u er toegang toe hebt, laten we een voorbeelddatabase maken zodat we deze kunnen gebruiken voor het verbinden en uitvoeren van query's.

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





create database sample;

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 aan met de naam testgebruiker die verbinding maakt met de MySQL-database vanaf dezelfde machine waarop deze wordt uitgevoerd (aangegeven door localhost ), met behulp van het wachtwoord securepwd .





create user 'testuser'@'localhost' identified by 'securepwd';

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

create user 'testuser'@'remotemc' identified by 'securepwd';

Nu de gebruikersnaam en het wachtwoord zijn aangemaakt, moeten we toegang verlenen tot de eerder gemaakte voorbeelddatabase.

grant all on sample.* to 'testuser'@'localhost';

Of, als de database op afstand is:

grant all on sample.* to 'testuser'@'remotemc';

U moet nu verifiëren dat u kunt verbinding maken met de database als de gebruiker die u zojuist hebt aangemaakt met hetzelfde wachtwoord. U kunt ook de volgende opdrachten uitvoeren nadat u verbinding hebt gemaakt, om er zeker van te zijn dat alle rechten correct zijn.

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Java-klassenpad instellen

Laten we nu ingaan op de details van hoe verbinding te maken met MySQL vanuit Java. De eerste stap is het laden van het databasestuurprogramma. Dit doet u door op een geschikte locatie het volgende in te roepen.

windows xp-thema voor windows 10
Class.forName('com.mysql.jdbc.Driver');

De code kan een uitzondering veroorzaken, dus u kunt deze opvangen als u van plan bent ermee om te gaan (zoals het formatteren van het foutbericht voor een GUI).

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

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

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

Om de driver te kunnen vinden, moet het programma natuurlijk worden aangeroepen met de driver JAR (hierboven gedownload en uitgepakt) 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 vanuit Java hebben opgesomd, gaan we verbinding maken met de database. Een manier om een ​​databaseverbinding te maken, is door de DriverManager .

String jdbcUrl = ...;
Connection 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?user=testuser&password=secrepwd';

Merk op dat we alle parameters hebben opgenomen die nodig zijn voor verbinding, inclusief de hostnaam ( localhost ), gebruikersnaam en wachtwoord. (Het opnemen van het wachtwoord zoals dit is GEEN goede gewoonte, 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('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}

Merk op dat een databaseverbinding een kostbare hulpbron is in een programma en correct moet worden afgesloten zoals hierboven. De bovenstaande code sluit de verbinding echter niet in 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.

hoe reset je je Facebook-wachtwoord?
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}

De database opvragen vanuit Java

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

select version();

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 ResultaatSet .

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

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

while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}

Na het verwerken 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.

Bekijk ook onze Cheatsheet voor SQL-opdrachten .

Deel Deel Tweeten E-mail Is het oké om Windows 11 op een incompatibele pc te installeren?

Je kunt nu Windows 11 op oudere pc's installeren met het officiële ISO-bestand... maar is het een goed idee om dat te doen?

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Java
  • SQL
Over de auteur Jay Sridhar(17 artikelen gepubliceerd) Meer van Jay Sridhar

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren