Uzman

En önemli detay, MySQL sunucusunun kendisi için JDBC Sürücü kitaplığıdır. Bilgisayarınızda görünmeyecek, bu yüzden onu oraya eklemeniz gerekiyor.

Maven kullanıyorsanız, doğru kütüphaneyi göstererek ona yardım etmeniz gerekir.

MySQL JDBC sürücüsü :

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

Sadece bu kodu pom.xml dosyanıza ekleyin .

Ayrıca birkaç popüler sürücü daha vereceğim.

PostgeSQL için JDBC Sürücüsü :

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

Oracle için JDBC sürücüsü :

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

H2 için JDBC sürücüsü :

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

İlk veritabanı sorgusu

Gerekli tüm kitaplıklar dahil edilmiştir, şimdi ilk veritabanı erişim programınızı çalıştırma zamanı. Tüm kodu main() yönteminde yazacağız .

1. Aşama main() yönteminden önce birkaç içe aktarma ekleyin - bu, hayatınızı çok daha kolaylaştıracaktır:

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

2. Aşama Öncelikle bir veritabanı bağlantısı oluşturmamız gerekiyor. Bunu yapmak için main() yönteminde aşağıdaki kodu yazın:

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

Tek satırda da yapabilirsiniz - hangisi sizin için daha uygunsa. Kullanıcı adı ve şifre, tabii ki, yerel MySQL sunucunuzdan gerçek olanları değiştirmeniz gerekir.

3. Aşama Veritabanına bir sorgu oluşturuyoruz. Kullanıcı tablosundan tüm kullanıcıları alalım. O zaman bu kod satırını eklemeniz gerekecek:

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

Bu iki satır. İlk önce bir nesne oluşturuyoruzİfadeve ikincisinde, onu veritabanını sorgulamak için kullanırız. ExecuteQuery() yöntemi, bir veritabanı sorgusu yürütür ve türünde bir nesne döndürür.sonuç kümesi.

4. Aşama Nesnede bulunan verileri göstersonuç kümesi.

sonuç kümesi- bu bir küme değil, sadece buna denir. Sorgu yürütmenin sonucunu saklar. Bu nesne biraz yineleyiciye benzer: sonucun geçerli satırını ayarlamanıza / değiştirmenize izin verir ve ardından bu geçerli satırdan veri alabilirsiniz. Örneğinize aşağıdaki kodu ekleyin:

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

next() yöntemi, geçerli sonuç satırını bir sonrakine değiştirir. Böyle bir satır varsa true, başka satır yoksa false döndürür.

Sonra nesnenin geçerli satırındansonuç kümesisütunlarından veri alabilirsiniz:

  • getRow() - nesnedeki geçerli satırın numarasını döndürürsonuç kümesi
  • getInt(N) - geçerli satırın N'inci sütununun verilerini int olarak döndürür
  • getString(N) - geçerli satırın N'inci sütununun verilerini bir String olarak döndürür

Tam program listesi

Hataları en aza indirmek için, programın tam listesi aşağıdadır:

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

Ve programı çalıştırdıktan sonra ekran çıktım:

"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
on bir İvanov İvan
2.2 Petrov Nikolay
3.3 Sidorov Vitaly
İşlem, çıkış kodu 0 ile tamamlandı