Maven

Het belangrijkste detail is de JDBC Driver-bibliotheek voor de MySQL-server zelf. Het verschijnt gewoon niet op uw computer, dus u moet het daar toevoegen.

Als je Maven gebruikt, moet je hem helpen door hem de juiste bibliotheek aan te wijzen.

MySQL JDBC-stuurprogramma :

   	<dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>8.0.29</version>
    	</dependency>

Voeg gewoon deze code toe aan uw pom.xml .

Ik zal ook een paar meer populaire stuurprogramma's geven.

JDBC-stuurprogramma voor PostgeSQL :

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.4.0</version>
</dependency>

JDBC-stuurprogramma voor Oracle :

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>21.5.0.0</version>
</dependency>

JDBC-stuurprogramma voor H2 :

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

Eerste databasequery

Alle vereiste bibliotheken zijn inbegrepen, nu is het tijd om uw eerste databasetoegangsprogramma uit te voeren. We schrijven alle code in de methode main() .

Fase 1 . Voeg een paar imports toe vóór de methode main() - dit zal uw leven veel gemakkelijker maken:

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

Fase 2 . Eerst moeten we een databaseverbinding maken. Om dit te doen, schrijft u in de methode main() de volgende code:

Connection connection  = DriverManager.getConnection(
           "jdbc:mysql://localhost:3306/test",
           "login", "password");

U kunt het ook in één regel doen - wat voor u het handigst is. Login en wachtwoord moet u natuurlijk vervangen door de echte van uw lokale MySQL-server.

Fase 3 . We maken een query naar de database. Laten we alle gebruikers uit de gebruikerstabel halen. Dan moet je deze regel code toevoegen:

Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");

Dat zijn twee regels. In de eerste maken we een objectStelling, en in de tweede gebruiken we het om de database te doorzoeken. De methode executeQuery() voert een databasequery uit en retourneert een object van het typeresultaat ingesteld.

Fase 4 . Geef de gegevens in het object weerresultaat ingesteld.

resultaat ingesteld- het is geen set, het heet gewoon zo. Het slaat het resultaat op van de uitvoering van de query. Dit object lijkt enigszins op een iterator: hiermee kunt u de huidige rij van het resultaat instellen/wijzigen, waarna u gegevens uit deze huidige rij kunt ophalen. Voeg de volgende code toe aan je voorbeeld:

while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
}

De methode next() verandert de huidige resultaatrij in de volgende. Het geeft true terug als er zo'n regel is, en false als er geen regels meer zijn.

Vervolgens vanaf de huidige lijn van het objectresultaat ingesteldu kunt gegevens uit de kolommen halen:

  • getRow() - retourneert het nummer van de huidige rij in het objectresultaat ingesteld
  • getInt(N) - retourneert de gegevens van de N-de kolom van de huidige rij als een int
  • getString(N) - retourneert de gegevens van de N-de kolom van de huidige rij als een tekenreeks

Volledige programmalijst

Om fouten te minimaliseren, is hier een volledige lijst van het programma:

package org.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcApplicatin {
    public static void main(String[] args) throws  Exception{
 	   Connection connection  = DriverManager.getConnection(
          	"jdbc:mysql://localhost:3306/test",
          	"root", "secret");

        Statement statement = connection.createStatement();
    	ResultSet results = statement.executeQuery("SELECT * FROM user");

    	while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
    	}
    	connection.close();
    }
}

En mijn schermuitvoer na het uitvoeren van het programma:

"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
elf Ivanov Ivan
2.2 Petrov Nikolaj
3.3 Sidorov Vitaly
Proces beëindigd met afsluitcode 0