Maven

Den vigtigste detalje er JDBC Driver-biblioteket til selve MySQL-serveren. Den vises bare ikke på din computer, så du skal tilføje den der.

Hvis du bruger Maven, så skal du hjælpe ham ved at pege på det rigtige bibliotek.

MySQL JDBC driver :

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

Bare tilføj denne kode til din pom.xml .

Jeg vil også give et par mere populære drivere.

JDBC-driver til PostgeSQL :

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

JDBC-driver til Oracle :

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

JDBC driver til H2 :

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

Første databaseforespørgsel

Alle de nødvendige biblioteker er inkluderet, nu er det tid til at køre dit første databaseadgangsprogram. Vi vil skrive al koden i main() metoden .

Etape 1 . Tilføj et par importer før main()- metoden - dette vil gøre dit liv meget lettere:

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

Etape 2 . Først skal vi oprette en databaseforbindelse. For at gøre dette skal du i main()- metoden skrive følgende kode:

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

Du kan også gøre det på én linje - alt efter hvad der passer dig bedst. Login og adgangskode, du skal selvfølgelig erstatte de rigtige fra din lokale MySQL-server.

Trin 3 . Vi opretter en forespørgsel til databasen. Lad os få alle brugerne fra brugertabellen. Så skal du tilføje denne kodelinje:

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

Det er to linjer. I den første opretter vi et objektUdmelding, og i den anden bruger vi den til at forespørge databasen. Metoden executeQuery() udfører en databaseforespørgsel og returnerer et objekt af typenresultatsæt.

Fase 4 . Vis de data, der er indeholdt i objektetresultatsæt.

resultatsæt- det er ikke et sæt, det hedder bare det. Den gemmer resultatet af forespørgslens udførelse. Dette objekt ligner lidt en iterator: det giver dig mulighed for at indstille / ændre den aktuelle række af resultatet, og så kan du få data fra denne aktuelle række. Tilføj følgende kode til dit eksempel:

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

Next() -metoden ændrer den aktuelle resultatrække til den næste. Det returnerer sandt, hvis der er en sådan linje, og falsk, hvis der ikke er flere linjer.

Derefter fra objektets aktuelle linjeresultatsætdu kan få data fra dens kolonner:

  • getRow() - returnerer nummeret på den aktuelle række i objektetresultatsæt
  • getInt(N) - returnerer dataene i den N. kolonne i den aktuelle række som en int
  • getString(N) - returnerer dataene i den N. kolonne i den aktuelle række som en streng

Fuld programoversigt

For at minimere fejl er her en komplet liste over programmet:

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();
    }
}

Og mit skærmoutput efter at have kørt programmet:

"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
elleve Ivanov Ivan
2.2 Petrov Nikolay
3.3 Sidorov Vitaly
Processen afsluttet med udgangskode 0