Kesambungan Pangkalan Data Java

Anda tahu asas SQL. Ini baik. Tetapi hari ini anda akan berasa lebih baik. Hari ini anda akan mula belajar bagaimana untuk bekerja dengan pangkalan data daripada aplikasi Java.

Terdapat banyak DBMS yang berbeza, jadi pencipta Java memutuskan untuk menyeragamkan cara aplikasi Java berfungsi dengan pangkalan data. Dan mereka memanggil standard ini - JDBC : Java DataBase Connectivity .

JDBC mempunyai 3 antara muka utama:

  • Sambungan - bertanggungjawab untuk menyambung ke pangkalan data
  • Pernyataan - bertanggungjawab untuk menanyakan pangkalan data
  • ResultSet - bertanggungjawab untuk hasil pertanyaan kepada pangkalan data

Sebenarnya, itu sahaja. Dan kami tidak akan mempelajari semua kaedah semua antara muka. Hanya contoh yang berfungsi, yang secara beransur-ansur akan kami rumitkan.

JDBC agak serupa dengan bekerja dengan servlet. Pencipta JDBC telah menulis beberapa antara muka dan dengan bangganya memanggilnya Java DataBase API. Dan pelaksanaan antara muka ini telah diberikan kepada ... pencipta DBMS. Bagaimana ia dilaksanakan di sana - tiada siapa yang peduli. berfungsi dengan baik.

Terdapat empat versi JDBC dan kami akan melihat yang terbaru. Dan bukan kerana dia yang paling hebat, tetapi kerana dia yang paling mudah.

Pengurus Pemandu JDBC

Aplikasi Java dan pangkalan data berkomunikasi antara satu sama lain melalui perpustakaan yang dipanggil Pemacu JDBC. Ini ialah set kelas yang melaksanakan API JDBC untuk DBMS tertentu.

Pemacu JDBC yang betul dipilih menggunakan kelas yang dipanggil DriverManager . Interaksi mereka boleh diwakili seperti berikut:

Masalahnya, anda boleh menggunakan In-Memory-DB, No-SQL-DB, atau pun pangkalan data yang dibina ke dalam apl Android. Sebagai pembangun Java, nuansa ini tidak membimbangkan anda sama sekali. Pengurus Pemandu akan memilih pemacu JDBC yang betul untuk anda dan semuanya akan berfungsi seperti jam.

By the way, macam mana dia buat?

Menyambung ke pelayan MySQL

Ingat apa yang anda perlukan untuk menyambung ke pelayan SQL tempatan melalui MySQL Workbench? Jika saya terlupa, maka saya ingatkan anda, anda memerlukan tiga perkara:

  • tuan rumah
  • log masuk
  • kata laluan

Segala-galanya jelas dengan log masuk dan kata laluan, dan hos, jika anda ingat, ialah nama komputer di mana pelayan berada. Jika ia terletak pada komputer tempatan anda, maka anda perlu menentukan localhost sebagai nama hos. Bagaimana jika ia bukan tempatan?

Kemudian anda perlu menggunakan ... URL. URL adalah singkatan kepada Universal Resource Locator . Ia boleh digunakan untuk menentukan lokasi apa-apa pada rangkaian: tapak, pencetak, pelayan SQL. Malah, URL juga digunakan untuk mengakses pelayan SQL tempatan. Ia kelihatan seperti ini:

mysql://localhost:3306/db_scheme
  • mysql ialah protokol pelayan
  • localhost - nama hos pada rangkaian
  • 3306 - port di mana permintaan dibuat
  • db_scheme - nama skema (nama pangkalan data)

Catatan. Nama pangkalan data boleh ditinggalkan. Tetapi jika pelayan menyimpan banyak skema pangkalan data, maka biasanya pengguna yang berbeza dan hak akses yang berbeza dicipta untuk mereka. Dan jika pengguna di mana anda log masuk ke pelayan SQL tidak mempunyai akses kepada semua pangkalan data, maka anda pasti perlu menentukan nama pangkalan data khusus yang anda boleh akses.

Pada penghujung url ini terdapat pelbagai parameter, jenis pengekodan, zon waktu, yang dianggap sebagai parameter untuk sambungan pangkalan data baharu yang diwujudkan.

Juga, protokol boleh menjadi komposit. Jika semua komunikasi dengan pelayan pangkalan data melalui saluran yang disulitkan menggunakan protokol SSH, maka URL boleh ditentukan seperti ini:

ssh:mysql://localhost:3306/db_scheme

Protokol tidak semestinya program luaran. Sebagai contoh, jika anda bekerja dengan pelayan menggunakan protokol JNDI, anda boleh menentukannya seperti ini:

jndi:mysql://localhost:3306/db_scheme

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

jdbc:mysql://localhost:3306/db_scheme

Apabila anda cuba membuat sambungan pangkalan data, Pengurus Pemacu JDBC menghuraikan SQL-db-URL anda dan menentukan nama pemacu JDBC daripada nama protokol. Berikut adalah helah kecil.