Birinchi JDBC-dastur

All lectures for UZ purposes
Daraja, Dars
Mavjud

Maven

Eng muhim detal – MySQL server uchun JDBC Driver kutubxonasi. U o'z-o'zidan kompyuteringda paydo bo'lmaydi, shuning uchun uni qo'shishing kerak.

Agar Maven ishlatayotgan bo'lsang, unga yordam berishing kerak – kerakli kutubxonani ko'rsatish.

MySQL uchun JDBC-drayveri:

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

Yangilanishlarni mvn repository da tekshirib ko'r.

Shunchaki bu kodni sening pom.xml faylingga qo'sh.

Shuningdek, boshqa mashhur drayverlarni ham keltirib o'taman.

PostgeSQL uchun JDBC-drayver:

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

Oracle uchun JDBC-drayver:

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

H2 uchun JDBC-drayver:

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

Ma'lumotlar bazasiga birinchi so'rov

Kerakli kutubxonalar ulandi, endi ma'lumotlar bazasiga kirish imkoniyatiga ega dasturingni ishga tushirish vaqti keldi. Barcha kodni main() metodida yozamiz.

Bosqich 1. main() metodidan oldin bir nechta import qo'sh – bu hayotingni ancha osonlashtiradi:


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

Bosqich 2. Avvaliga ma'lumotlar bazasiga ulanishni yaratishimiz kerak. Buning uchun main() metodida quyidagi kodni yoz:


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

Bitta qatorda ham yozish mumkin – qanday qulay bo'lsa shunday qilsang bo'ladi. Login va parol, albatta, sening lokal MySQL-serveringning haqiqiy ma'lumotlarini qo'yish kerak.

Bosqich 3. Ma'lumotlar bazasiga so'rov yaratamiz. User jadvalidagi barcha foydalanuvchilarni olishni ko'rib chiqamiz. Bunda quyidagi kod qatorini qo'shishing kerak:


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

Bu ikki qator. Birinchisida Statement obyektini yaratamiz, ikkinchisida esa uning yordamida ma'lumotlar bazasiga so'rovni bajarib, natijasini qaytaradi. executeQuery() metodi ma'lumotlar bazasiga so'rovni bajaradi va ResultSet tipidagi obyekti qaytaradi.

Bosqich 4. Ekranga ResultSet obyektidagi ma'lumotlarni chiqaramiz.

ResultSet – bu to'plam emas, shunchaki shunday nomlanadi. Unda so'rov natijasi saqlanadi. Bu obyektni iteratorga o'xshatish mumkin: u natijadagi hozirgi qatorni o'rnatishga/o'zgartirishga imkon beradi, so'ngra bu qatorlardan ma'lumot olish mumkin. Namuna kodiga quyidagi kodni qo'sh:


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

next() metodi natijadagi hozirgi qatorni keyingisiga o'zgartiradi. Agar bunday qator mavjud bo'lsa true qaytaradi, agar yo'q bo'lsa false qaytaradi.

So'ngra ResultSet obyektidagi hozirgi qatorning ustunlaridan ma'lumot olish mumkin:

  • getRow() – ResultSet obyektidagi hozirgi qatorning raqamini qaytaradi
  • getInt(N) – hozirgi qatorning N-ustuni ma'lumotini int turida qaytaradi
  • getString(N) – hozirgi qatorning N-ustuni ma'lumotini String turida qaytaradi

Dastur to'liq ro'yxati

Xatolarni minimal darajaga tushirish uchun quyida dastur to'liq ro'yxatini keltiraman:


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

Va dastur ishga tushirilgandan keyingi mening chiqaruvim:

"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe…
1. 1 Ivanov Ivan
2. 2 Petrov Nikolay
3. 3 Sidorov Vitaliy
Process finished with exit code 0
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION