Experto

El detalle más importante es la biblioteca de controladores JDBC para el propio servidor MySQL. Simplemente no aparecerá en su computadora, por lo que debe agregarlo allí.

Si está utilizando Maven, debe ayudarlo indicándole la biblioteca correcta.

Controlador MySQL JDBC :

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

Simplemente agregue este código a su pom.xml .

También daré algunos controladores más populares.

Controlador JDBC para PostgeSQL :

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

Controlador JDBC para Oracle :

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

Controlador JDBC para H2 :

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

Primera consulta a la base de datos

Todas las bibliotecas requeridas están incluidas, ahora es el momento de ejecutar su primer programa de acceso a la base de datos. Escribiremos todo el código en el método main() .

Etapa 1 . Agregue algunas importaciones antes del método main() ; esto hará que su vida sea mucho más fácil:

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

Etapa 2 . Primero necesitamos crear una conexión a la base de datos. Para ello, en el método main() , escribe el siguiente código:

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

También puede hacerlo en una línea, lo que sea más conveniente para usted. El nombre de usuario y la contraseña, por supuesto, debe sustituir los reales de su servidor MySQL local.

Etapa 3 . Creamos una consulta a la base de datos. Obtengamos todos los usuarios de la tabla de usuarios. Luego deberá agregar esta línea de código:

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

Son dos líneas. En el primero creamos un objeto.Declaración, y en el segundo, lo usamos para consultar la base de datos. El método executeQuery() ejecuta una consulta de base de datos y devuelve un objeto de tipoconjunto resultante.

Etapa 4 . Mostrar los datos contenidos en el objeto.conjunto resultante.

conjunto resultante- no es un conjunto, simplemente se llama así. Almacena el resultado de la ejecución de la consulta. Este objeto es algo similar a un iterador: le permite establecer/cambiar la fila actual del resultado, y luego puede obtener datos de esta fila actual. Agrega el siguiente código a tu ejemplo:

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

El método next() cambia la fila de resultados actual a la siguiente. Devuelve verdadero si existe tal línea y falso si no hay más líneas.

Luego, desde la línea actual del objetoconjunto resultantepuede obtener datos de sus columnas:

  • getRow() - devuelve el número de la fila actual en el objetoconjunto resultante
  • getInt(N) - devolverá los datos de la columna N de la fila actual como un int
  • getString(N) - devolverá los datos de la columna N de la fila actual como una cadena

Listado completo del programa

Para minimizar los errores, aquí hay una lista completa del programa:

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

Y mi salida de pantalla después de ejecutar el programa:

"C:\Archivos de programa\Java\jdk-17.0.3.1\bin\java.exe...
once ivanov ivan
2.2 Petrov Nikolái
3.3 Sidorov Vitali
Proceso finalizado con código de salida 0