Ma’lumotlar bazasi (Database) — dastur ma’lumotini doimiy, tartibli va katta hajmda saqlash usuli. O’zgaruvchilar dastur yopilishi bilan yo’qoladi; ma’lumotlar bazasidagi ma’lumot esa saqlanib qoladi va minglab yozuv orasidan tez izlanadi. Java’da bazaga ulanish JDBC orqali amalga oshiriladi.
JDBC (Java Database Connectivity) — Java dasturini ma’lumotlar bazasiga ulash va SQL so’rovlarini bajarish uchun standart API. U MySQL, PostgreSQL va boshqa bazalar bilan ishlaydi.
Bazaga ulanish
JDBC orqali ulanish DriverManager yordamida amalga oshiriladi. Ulanish, so’rov va yopish — asosiy bosqichlar:
import java.sql.Connection;
import java.sql.DriverManager;
public class Main {
public static void main(String[] args) throws Exception {
String url = "jdbc:mysql://localhost:3306/uzbekdevs";
Connection ulanish = DriverManager.getConnection(url, "root", "parol");
System.out.println("Bazaga ulandik");
ulanish.close();
}
}
Bazaga ulandik
getConnection bazaga ulanadi, close esa ulanishni yopadi. Ulanish satri (url) bazaning turi, manzili va nomini o’z ichiga oladi.
Jadval va SQL
Faraz qilaylik, bazada foydalanuvchilar jadvali bor. Uning tuzilishi quyidagicha:
| id | ism | yosh |
|---|---|---|
| 1 | Farrux | 26 |
| 2 | Master Sherkulov | 30 |
| 3 | Aziz | 22 |
Bu jadvaldan ma’lumot olish uchun SELECT so’rovi ishlatiladi.
Ma’lumot o’qish — SELECT
Statement va ResultSet orqali so’rov bajarib, natijani o’qiymiz:
import java.sql.*;
public class Main {
public static void main(String[] args) throws Exception {
Connection ulanish = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/uzbekdevs", "root", "parol");
Statement st = ulanish.createStatement();
ResultSet rs = st.executeQuery("SELECT ism, yosh FROM foydalanuvchilar");
while (rs.next()) {
System.out.println(rs.getString("ism") + " - " + rs.getInt("yosh"));
}
ulanish.close();
}
}
Yuqoridagi SELECT ism, yosh FROM foydalanuvchilar so’rovi quyidagi natijani beradi:
| ism | yosh |
|---|---|
| Farrux | 26 |
| Master Sherkulov | 30 |
| Aziz | 22 |
executeQuery so’rovni bajarib, natijani ResultSet da qaytardi. rs.next() har qatorni navbatma-navbat o’qiydi, rs.getString("ism") esa ustun qiymatini oladi.
Shart bilan izlash — WHERE
WHERE sharti bilan ma’lum yozuvlarni ajratib olish mumkin. Masalan, SELECT ism, yosh FROM foydalanuvchilar WHERE yosh > 25 so’rovi quyidagi natijani beradi:
| ism | yosh |
|---|---|
| Farrux | 26 |
| Master Sherkulov | 30 |
Faqat yoshi 25 dan katta foydalanuvchilar ajratildi. WHERE — bazaning eng kuchli imkoniyatlaridan biri: u minglab yozuv orasidan kerakligini tez topadi.
Ma’lumot qo’shish — INSERT va xavfsizlik
Yangi yozuv qo’shish uchun PreparedStatement ishlatiladi. U SQL-in’ektsiya hujumlaridan himoya qiladi:
String sql = "INSERT INTO foydalanuvchilar (ism, yosh) VALUES (?, ?)";
PreparedStatement ps = ulanish.prepareStatement(sql);
ps.setString(1, "Dilnoza");
ps.setInt(2, 24);
ps.executeUpdate();
? belgilari o’rniga qiymatlar setString/setInt orqali xavfsiz qo’yiladi. Doim PreparedStatement ishlating — foydalanuvchi kiritgan ma’lumotni to’g’ridan-to’g’ri so’rovga qo’shish xavfli.
Xulosa
Bu bo’limda JDBC bilan bazaga ulanish, SELECT bilan o’qish, WHERE bilan izlash va PreparedStatement bilan xavfsiz INSERT ni ko’rib chiqdik. Ma’lumotlar bazasi — real ilovalarning yuragi. Keyingi darsda fayllar bilan ishlash bilan bu Java qo’llanmasini yakunlaymiz.