JavaRush /Kurslar /All lectures for UZ purposes /Java-ilovadan ma'lumotlar bazasiga ulanish

Java-ilovadan ma'lumotlar bazasiga ulanish

All lectures for UZ purposes
Daraja, Dars
Mavjud

Java DataBase Connectivity

SQL asoslarini bilasan. Bu yaxshi. Ammo bugun yashash yana bir qadam yaxshiroq bo'ladi. Bugun sen, Java-ilovadan qanday qilib ma'lumotlar bazasi bilan ishlashni o'rganishni boshlaysan.

Turli xil СУБД juda ko'p, shuning uchun Java ishlab chiquvchilari Java-ilovani ma'lumotlar bazasi bilan ishlashni standartlashtirishga qaror qilishdi. Va bu standartga ular JDBC: Java DataBase Connectivity deb nom berishdi.

JDBCda 3 asosiy interfeys mavjud:

  • Connection – ma'lumotlar bazasi bilan ulanish uchun javobgar
  • Statement – ma'lumotlar bazasiga so'rov yuborishga javobgar
  • ResultSet – ma'lumotlar bazasidan so'rov natijasini olish uchun javobgar

Aslida hammasi shu. Biz hatto barcha interfeyslarning barcha metodlarini o'rganmaymiz. Faqat ishlaydigan misollarni ko'rib chiqamiz, ularni asta-sekin murakkablashtiramiz.

JDBC qaysidir ma'noda servletlar bilan ishlashga o'xshaydi. JDBC yaratuvchilari bir necha interfeyslarni yozdilar va bu Java DataBase API deb nomlashdi. Va bu interfeyslarning realizatsiyasini СУБД yaratuvchilariga yukladilar. Qanday amalga oshirilgani hech kimni qiziqtirmaydi. Ishlaydi va yetarli.

JDBCning to'rtta versiyasi bor va biz eng oxirgisini o'rganamiz. Chunki u eng oddiy.

JDBC Driver Manager

Java-ilova va ma'lumotlar bazasi o'zaro aloqa qilish uchun JDBC Driver deb nomlangan kutubxonadan foydalanadi. Bu ma'lum bir СУБД uchun JDBC APIni amalga oshiradigan sinflar to'plamidir.

To'g'ri JDBC drayveri esa DriverManager deb nomlangan sinf yordamida tanlanadi. Ularning o'zaro ta'siri quyidagi rasmda tasvirlangan:

Qiziq joyi shundaki, sen In-Memory-DB, No-SQL-DB yoki hatto Android-ilovaga o'rnatilgan ma'lumotlar bazasidan foydalanishing mumkin. Senga, Java-dasturchi sifatida, bu tafsilotlar umuman muhim emas. Driver Manager sizga to'g'ri JDBC drayverini tanlaydi va hammasi soatdek ishlaydi.

Xo'sh, u buni qanday qiladi?

MySQL-serverga ulanish

MySQL Workbench orqali lokal SQL-serverga ulanish uchun nima kerak bo'lganini eslaysanmi? Agar eshitmagan bo'lsang, eslataman, uchta narsa kerak edi:

  • host
  • login
  • password

Login va parol bilan hammasi tushunarli, host esa, agar eslasang – bu server joylashgan kompyuterning nomi. Agar u sening lokal kompyuteringda joylashgan bo'lsa, unda xost nomi sifatida localhostni ko'rsatish kerak. Agarda u lokalda bo'lmasa-chi?

Unda (...) URL dan foydalanish kerak. URL ning ochilishi Universal Resource Locator bo'lib, tarmoqdagi har qanday narsaning joylashuvini ko'rsatish uchun foydalaniladi: sayt, printer, SQL-server. Aslida URL lokal SQL-serverga ulanish uchun ham qo'llaniladi va u taxminan quyidagi ko'rinishga ega:


mysql://localhost:3306/db_scheme
  • mysql – bu server bilan ishlash protokoli
  • localhost – tarmoqdagi xost nomi
  • 3306 – so'rovlar o'tadigan port
  • db_scheme – sxema nomi (ma'lumotlar bazasi nomi)

Eslatma. Ma'lumotlar bazasi nomini ko'rsatish shart emas. Ammo agar serverda ko'p miqdorda ma'lumotlar bazasi sxemalari saqlangan bo'lsa, odatda ularga turli foydalanuvchilarni va turli kirish huquqlarini yaratishadi. Va agar sen SQL-serverga kirayotgan foydalanuvchida barcha ma'lumotlar bazalariga kirish imkoni yo'q bo'lsa, qo'ling yetadigan aniq ma'lumotlar bazasining nomini ko'rsatishing shart.

Bu URLning oxirida turli xil parametrlar, kodlash turlari, timezone bo'lishi mumkin, ular ma'lumotlar bazasi bilan o'rnatilayotgan yangi ulanishning parametrlar sifatida qaraladi.

Shuningdek, protokol murakkab bo'lishi mumkin. Agar ma'lumotlar bazasi serveri bilan barcha muloqot SSH-protokoli yordamida shifrlangan kanal orqali amalga oshirilsa, URL quyidagi tarzda ko'rsatilishi mumkin:


ssh:mysql://localhost:3306/db_scheme

Protokol – bu albatta tashqi dastur emas. Masalan, agar sen JNDI protokoli orqali server bilan ishlayotgan bo'lsang, uni quyidagicha ko'rsatishing mumkin:


jndi:mysql://localhost:3306/db_scheme

Agar JDBC API protokoli orqali ishlashni xohlasang, shunday yozish kerak:


jdbc:mysql://localhost:3306/db_scheme

Ma'lumotlar bazasiga ulanish yaratishga uringan vaqtida, JDBC Driver Manager SQL-db-URLni tahlil qiladi va protokol nomi bo'yicha JDBC drayverning nomini aniqlaydi. Mana shu kichik hiyla-nayrang.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION