Menyambung ke Pangkalan Data dengan next.jdbc
Pelajari cara mewujudkan sambungan pangkalan data dan melaksanakan pertanyaan SQL menggunakan pustaka `next.jdbc`
Menyambung ke Pangkalan Data dengan next.jdbc ialah pelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM merangkumi sejumlah 4 pelajaran.
Akses Pangkalan Data dalam Clojure
Selamat datang ke pelajaran tentang penyambungan Clojure dengan pangkalan data! Kebanyakan aplikasi dunia sebenar perlu menyimpan dan mendapatkan semula data, dan pangkalan data merupakan bahagian penting dalam hal ini.
Dalam pelajaran ini, anda akan mempelajari cara menggunakan next.jdbc, pustaka popular Clojure, untuk berinteraksi dengan pelbagai pangkalan data.
Kenali next.jdbc
next.jdbc ialah pembungkus Clojure moden dan idiomatik untuk JDBC (Java Database Connectivity). JDBC ialah API Java standard untuk menyambung kepada pangkalan data hubungan.
- Ia memudahkan operasi pangkalan data.
- Ia menyediakan antara muka berfungsi yang kemas.
- Ia pantas dan cekap.
- Ia menyokong pelbagai pangkalan data (PostgreSQL, MySQL, H2, SQLite dan sebagainya).
Menambah Kebergantungan
Sebelum menulis sebarang kod, kita perlu menambah next.jdbc dan pemacu pangkalan data kepada kebergantungan projek kita. Kita akan menggunakan H2, iaitu pangkalan data dalam memori, untuk contoh yang mudah.
Tambahkan perkara berikut ke dalam fail deps.edn anda:
{:deps {org.clojure/clojure {:mvn/version "1.11.1"}
seancorfield/next.jdbc {:mvn/version "1.3.909"}
com.h2database/h2 {:mvn/version "2.2.220"}}}Rentetan Sambungan (URL JDBC)
Untuk menyambung kepada pangkalan data, anda memerlukan URL JDBC. Rentetan ini memberitahu next.jdbc (dan pemacu JDBC yang mendasarinya) cara mencari dan menyambung kepada pangkalan data anda.
Untuk pangkalan data H2 dalam memori, URL yang lazim kelihatan seperti berikut:
jdbc:h2:mem:testdb: Menyambung kepada pangkalan data H2 bernama 'testdb' dalam memori.jdbc:sqlite:my-data.db: Menyambung kepada fail SQLite.jdbc:postgresql://localhost/mydb: Menyambung kepada pangkalan data PostgreSQL.
Mewujudkan Sumber Data
Sumber data ialah objek yang mewakili kumpulan sambungan atau kilang untuk sambungan pangkalan data. Biasanya, sumber data dicipta sekali dan digunakan semula.
Fungsi get-datasource milik next.jdbc menerima peta parameter sambungan, termasuk URL JDBC.
Mendapatkan Sambungan dengan <code>with-open</code>
Selepas mendapatkan sumber data, anda boleh memperoleh sambungan. Sambungan amat penting untuk ditutup selepas digunakan supaya sumber dapat dibebaskan.
Makro with-open Clojure amat sesuai untuk tujuan ini. Makro tersebut memastikan sumber seperti sambungan pangkalan data ditutup secara automatik apabila keluar daripada skop.
Boleh Dijalankan: Sambung dan Putuskan Sambungan
Mari lihat cara mewujudkan dan menutup sambungan pangkalan data menggunakan next.jdbc dan pangkalan data H2 dalam memori. Jalankan kod ini:
(ns my-app.core
(:require [next.jdbc :as jdbc]))
(defn -main
"Connects to an H2 in-memory database and closes the connection."
[]
(let [db-spec {:dbtype "h2" :dbname "mem:testdb"}]
(println "Attempting to connect...")
(with-open [conn (jdbc/get-connection db-spec)]
(println "Successfully connected to H2!\nConnection object:")
(println conn))
(println "Connection closed.")))
(-main)Melaksanakan Pertanyaan SQL Ringkas
Selepas disambungkan, anda boleh melaksanakan pertanyaan SQL. next.jdbc menyediakan fungsi seperti jdbc/execute! untuk operasi DDL (Bahasa Takrifan Data) dan DML (Bahasa Manipulasi Data), serta jdbc/execute-one! untuk pertanyaan yang menjangkakan hasil satu baris.
Pertanyaan dihantar sebagai vektor, dengan rentetan SQL diikuti oleh sebarang parameter.
Boleh Dijalankan: Laksanakan Pertanyaan
Sekarang, mari cipta jadual dan masukkan beberapa data ke dalam pangkalan data H2 dalam memori kita, kemudian buat pertanyaan terhadapnya. Perhatikan bahawa execute! mengembalikan vektor peta.
(ns my-app.core
(:require [next.jdbc :as jdbc]))
(defn -main
"Connects, creates a table, inserts data, and queries it."
[]
(let [db-spec {:dbtype "h2" :dbname "mem:testdb"}]
(with-open [conn (jdbc/get-connection db-spec)]
(println "Connected. Creating table...")
(jdbc/execute! conn ["CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY, name VARCHAR(255))"])
(println "Table created. Inserting data...")
(jdbc/execute! conn ["INSERT INTO users (id, name) VALUES (?, ?)" 1 "Alice"])
(jdbc/execute! conn ["INSERT INTO users (id, name) VALUES (?, ?)" 2 "Bob"])
(println "Data inserted. Querying data...")
(let [result (jdbc/execute! conn ["SELECT id, name FROM users"])]
(println "Query Result:")
(doseq [row result] (println row))))
(println "Operations complete. Connection closed.")))
(-main)Semakan Pantas tentang Sambungan
Apakah tujuan utama menggunakan with-open apabila mengendalikan sambungan pangkalan data dalam Clojure?
Imbas Kembali: Menyambung kepada Pangkalan Data
Anda telah mengambil langkah pertama dalam interaksi pangkalan data dengan Clojure!
- Kita memperkenalkan
next.jdbcsebagai pustaka berkuasa untuk mengakses pangkalan data. - Anda mempelajari cara menambah kebergantungan yang diperlukan (
next.jdbcdan pemacu JDBC seperti H2). - Kita membincangkan URL JDBC serta cara mewujudkan sumber data dan sambungan.
- Anda melihat cara
with-openmemastikan sambungan diurus dengan betul. - Akhir sekali, kita melaksanakan pertanyaan DDL dan DML asas menggunakan
jdbc/execute!.
Seterusnya, kita akan mendalami operasi CRUD!
Pelajari Clojure dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Menyambung ke Pangkalan Data dengan next.jdbc” percuma?
Ya — teks penuh “Menyambung ke Pangkalan Data dengan next.jdbc” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM, tingkat taraf kepada CoddyKit PRO. Kursus Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menyambung ke Pangkalan Data dengan next.jdbc”?
Pelajari cara mewujudkan sambungan pangkalan data dan melaksanakan pertanyaan SQL menggunakan pustaka `next.jdbc` Anda berlatih Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Menyambung ke Pangkalan Data dengan next.jdbc” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM ini?
Ya. Setiap pelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menyambung ke Pangkalan Data dengan next.jdbc
- Melaksanakan Operasi CRUD
- Migrasi Pangkalan Data dan Pengurusan Skema
- Pengumpulan Sambungan dan Transaksi