Maven

Den viktigaste detaljen är JDBC-drivrutinsbiblioteket för själva MySQL-servern. Det kommer bara inte att dyka upp på din dator, så du måste lägga till det där.

Om du använder Maven måste du hjälpa honom genom att peka ut rätt bibliotek.

MySQL JDBC-drivrutin :

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

Lägg bara till den här koden i din pom.xml .

Jag kommer också att ge några fler populära drivrutiner.

JDBC-drivrutin för PostgeSQL :

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

JDBC-drivrutin för Oracle :

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

JDBC-drivrutin för H2 :

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

Första databasfrågan

Alla nödvändiga bibliotek är inkluderade, nu är det dags att köra ditt första databasåtkomstprogram. Vi kommer att skriva all kod i main()- metoden .

Steg 1 . Lägg till några importer före main()- metoden - detta kommer att göra ditt liv mycket enklare:

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

Steg 2 . Först måste vi skapa en databasanslutning. För att göra detta, i main() -metoden , skriv följande kod:

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

Du kan också göra det på en rad - beroende på vilket som passar dig bäst. Inloggning och lösenord, naturligtvis, måste du ersätta de riktiga från din lokala MySQL-server.

Steg 3 . Vi skapar en fråga till databasen. Låt oss hämta alla användare från användartabellen. Då måste du lägga till denna kodrad:

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

Det är två rader. I den första skapar vi ett objektPåstående, och i den andra använder vi den för att fråga databasen. Metoden executeQuery() kör en databasfråga och returnerar ett objekt av typenresultatet satt.

Steg 4 . Visa data som finns i objektetresultatet satt.

resultatet satt– det är inte ett set, det heter bara så. Den lagrar resultatet av frågekörningen. Detta objekt liknar något en iterator: det låter dig ställa in / ändra den aktuella raden i resultatet, och sedan kan du hämta data från den aktuella raden. Lägg till följande kod till ditt exempel:

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

Metoden next() ändrar den aktuella resultatraden till nästa. Den returnerar sant om det finns en sådan linje, och falskt om det inte finns fler rader.

Sedan från objektets aktuella linjeresultatet sattdu kan hämta data från dess kolumner:

  • getRow() - returnerar numret på den aktuella raden i objektetresultatet satt
  • getInt(N) - returnerar data från den N:te kolumnen i den aktuella raden som en int
  • getString(N) - returnerar data från den N:te kolumnen i den aktuella raden som en String

Fullständig programlista

För att minimera fel, här är en komplett lista över 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();
    }
}

Och min skärmutgång efter att ha kört programmet:

"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
elva Ivanov Ivan
2.2 Petrov Nikolay
3.3 Sidorov Vitaly
Processen avslutad med utgångskod 0