Maven

Perincian yang paling penting ialah perpustakaan Pemacu JDBC untuk pelayan MySQL itu sendiri. Ia tidak akan dipaparkan pada komputer anda, jadi anda perlu menambahkannya di sana.

Jika anda menggunakan Maven, maka anda perlu membantunya dengan menunjukkan perpustakaan yang betul.

Pemacu MySQL JDBC :

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

Cuma tambah kod ini pada pom.xml anda .

Saya juga akan memberikan beberapa pemandu yang lebih popular.

Pemacu JDBC untuk PostgeSQL :

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

Pemacu JDBC untuk Oracle :

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

Pemacu JDBC untuk H2 :

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

Pertanyaan pangkalan data pertama

Semua perpustakaan yang diperlukan disertakan, kini tiba masanya untuk menjalankan program akses pangkalan data pertama anda. Kami akan menulis semua kod dalam kaedah main() .

Peringkat 1 . Tambah beberapa import sebelum kaedah main() - ini akan menjadikan hidup anda lebih mudah:

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

Peringkat 2 . Mula-mula kita perlu membuat sambungan pangkalan data. Untuk melakukan ini, dalam kaedah main() , tulis kod berikut:

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

Anda juga boleh melakukannya dalam satu baris - yang mana lebih mudah untuk anda. Log masuk dan kata laluan, sudah tentu, anda perlu menggantikan yang sebenar dari pelayan MySQL tempatan anda.

Peringkat 3 . Kami membuat pertanyaan kepada pangkalan data. Mari dapatkan semua pengguna daripada jadual pengguna. Kemudian anda perlu menambah baris kod ini:

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

Itu dua baris. Pada mulanya kita mencipta objekKenyataan, dan dalam yang kedua, kami menggunakannya untuk menanyakan pangkalan data. Kaedah executeQuery() melaksanakan pertanyaan pangkalan data dan mengembalikan objek jenisset keputusan.

Peringkat 4 . Paparkan data yang terkandung dalam objekset keputusan.

set keputusan- ia bukan satu set, ia hanya dipanggil itu. Ia menyimpan hasil pelaksanaan pertanyaan. Objek ini agak serupa dengan iterator: ia membolehkan anda menetapkan / menukar baris semasa hasil, dan kemudian anda boleh mendapatkan data daripada baris semasa ini. Tambahkan kod berikut pada contoh anda:

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

Kaedah next() menukar baris hasil semasa kepada yang seterusnya. Ia mengembalikan benar jika terdapat baris sedemikian, dan palsu jika tiada lagi baris.

Kemudian dari baris semasa objekset keputusananda boleh mendapatkan data daripada lajurnya:

  • getRow() - mengembalikan nombor baris semasa dalam objekset keputusan
  • getInt(N) - akan mengembalikan data lajur Nth baris semasa sebagai int
  • getString(N) - akan mengembalikan data lajur Nth baris semasa sebagai String

Penyenaraian program penuh

Untuk meminimumkan ralat, berikut ialah senarai lengkap program:

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

Dan output skrin saya selepas menjalankan program:

"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
sebelas Ivanov Ivan
2.2 Petrov Nikolay
3.3 Sidorov Vitaly
Proses selesai dengan kod keluar 0