Maven

Den viktigste detaljen er JDBC-driverbiblioteket for selve MySQL-serveren. Det vil bare ikke vises på datamaskinen din, så du må legge det til der.

Hvis du bruker Maven, må du hjelpe ham ved å peke ut det riktige biblioteket.

MySQL JDBC-driver :

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

Bare legg til denne koden i pom.xml .

Jeg vil også gi noen flere populære drivere.

JDBC-driver for PostgeSQL :

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

JDBC-driver for Oracle :

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

JDBC-driver for H2 :

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

Første databasespørring

Alle nødvendige biblioteker er inkludert, nå er det på tide å kjøre ditt første databasetilgangsprogram. Vi vil skrive all koden i main()- metoden .

Trinn 1 . Legg til noen få importer før main()- metoden - dette vil gjøre livet ditt mye enklere:

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

Trinn 2 . Først må vi opprette en databaseforbindelse. For å gjøre dette, i main()- metoden , skriv følgende kode:

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

Du kan også gjøre det på én linje - avhengig av hva som passer best for deg. Innlogging og passord, selvfølgelig, må du erstatte de ekte fra din lokale MySQL-server.

Trinn 3 . Vi oppretter en spørring til databasen. La oss hente alle brukerne fra brukertabellen. Da må du legge til denne kodelinjen:

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

Det er to linjer. I den første lager vi et objektUttalelse, og i den andre bruker vi den til å spørre databasen. executeQuery() -metoden utfører en databasespørring og returnerer et objekt av typenresultatsett.

Trinn 4 . Vis dataene i objektetresultatsett.

resultatsett– det er ikke et sett, det heter bare det. Den lagrer resultatet av spørringen. Dette objektet ligner litt på en iterator: det lar deg angi / endre gjeldende rad i resultatet, og så kan du hente data fra denne gjeldende raden. Legg til følgende kode i eksemplet ditt:

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

Next() -metoden endrer gjeldende resultatrad til neste. Det returnerer sant hvis det er en slik linje, og usant hvis det ikke er flere linjer.

Deretter fra gjeldende linje av objektetresultatsettdu kan hente data fra kolonnene:

  • getRow() - returnerer nummeret på gjeldende rad i objektetresultatsett
  • getInt(N) - vil returnere dataene i den N-te kolonnen i gjeldende rad som en int
  • getString(N) - vil returnere dataene i den N-te kolonnen i gjeldende rad som en streng

Full programoversikt

For å minimere feil, her er en fullstendig 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 skjermutgangen min etter å ha kjø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
Prosessen avsluttet med utgangskode 0