Konektivitas Database Java

Anda tahu dasar-dasar SQL. Ini bagus. Tetapi hari ini Anda akan merasa lebih baik. Hari ini Anda akan mulai mempelajari cara bekerja dengan database dari aplikasi Java.

Ada banyak DBMS yang berbeda, sehingga pembuat Java memutuskan untuk membakukan cara kerja aplikasi Java dengan database. Dan mereka menyebutnya standar - JDBC : Java DataBase Connectivity .

JDBC memiliki 3 antarmuka utama:

  • Koneksi - bertanggung jawab untuk menghubungkan ke database
  • Pernyataan - bertanggung jawab untuk menanyakan database
  • ResultSet - bertanggung jawab atas hasil kueri ke database

Faktanya, itu saja. Dan kami bahkan tidak akan mempelajari semua metode dari semua antarmuka. Hanya contoh yang berfungsi, yang secara bertahap akan kami rumitkan.

JDBC agak mirip dengan bekerja dengan servlet. Pembuat JDBC telah menulis beberapa antarmuka dan dengan bangga menyebutnya Java DataBase API. Dan penerapan antarmuka ini ditugaskan ke ... pencipta DBMS. Bagaimana penerapannya di sana - tidak ada yang peduli. Berfungsi dengan baik.

Ada empat versi JDBC dan kami akan melihat yang terbaru. Dan bukan karena dia yang paling keren, tapi karena dia yang paling sederhana.

Manajer Pengemudi JDBC

Aplikasi Java dan database berkomunikasi satu sama lain melalui perpustakaan yang disebut Driver JDBC. Ini adalah sekumpulan kelas yang mengimplementasikan JDBC API untuk DBMS tertentu.

Driver JDBC yang benar dipilih menggunakan kelas bernama DriverManager . Interaksi mereka dapat direpresentasikan sebagai berikut:

Masalahnya, Anda dapat menggunakan In-Memory-DB, No-SQL-DB, atau bahkan database yang dibangun di dalam aplikasi Android. Sebagai pengembang Java, nuansa ini sama sekali bukan urusan Anda. Driver Manager akan memilih driver JDBC yang tepat untuk Anda dan semuanya akan bekerja seperti jarum jam.

Ngomong-ngomong, bagaimana dia melakukannya?

Menghubungkan ke server MySQL

Ingat apa yang Anda perlukan untuk terhubung ke server SQL lokal melalui MySQL Workbench? Jika saya lupa, maka saya ingatkan, Anda membutuhkan tiga hal:

  • tuan rumah
  • Gabung
  • kata sandi

Semuanya jelas dengan login dan kata sandi, dan tuan rumah, jika Anda ingat, adalah nama komputer tempat server berada. Jika terletak di komputer lokal Anda, maka Anda perlu menentukan localhost sebagai nama host. Bagaimana jika itu bukan lokal?

Maka Anda perlu menggunakan ... URL. URL adalah singkatan dari Universal Resource Locator . Itu dapat digunakan untuk menentukan lokasi apa pun di jaringan: situs, printer, server SQL. Bahkan, URL tersebut juga digunakan untuk mengakses server SQL lokal. Ini terlihat seperti ini:

mysql://localhost:3306/db_scheme
  • mysql adalah protokol server
  • localhost - nama host di jaringan
  • 3306 - port tempat permintaan dibuat
  • db_scheme - nama skema (nama database)

Catatan. Nama database bisa dihilangkan. Tetapi jika server menyimpan banyak skema database, maka biasanya dibuat pengguna yang berbeda dan hak akses yang berbeda. Dan jika pengguna tempat Anda masuk ke server SQL tidak memiliki akses ke semua database, maka Anda pasti perlu menentukan nama database tertentu yang dapat Anda akses.

Di akhir url ini dapat terdapat berbagai parameter, jenis pengkodean, zona waktu, yang dianggap sebagai parameter untuk koneksi database baru yang dibuat.

Juga, protokolnya bisa komposit. Jika semua komunikasi dengan server basis data melalui saluran terenkripsi menggunakan protokol SSH, maka URL dapat ditentukan seperti ini:

ssh:mysql://localhost:3306/db_scheme

Protokol belum tentu merupakan program eksternal. Misalnya, jika Anda bekerja dengan server menggunakan protokol JNDI, Anda dapat menentukannya seperti ini:

jndi:mysql://localhost:3306/db_scheme

Dan jika Anda ingin bekerja menggunakan protokol JDBC API, maka Anda perlu menulis seperti ini:

jdbc:mysql://localhost:3306/db_scheme

Saat Anda mencoba membuat koneksi database, JDBC Driver Manager mengurai SQL-db-URL Anda dan menentukan nama driver JDBC dari nama protokol. Ini sedikit trik.