Kotlin में डेटाबेस के साथ कार्य का परिचय
Kotlin एक आधुनिक प्रोग्रामिंग भाषा है जिसका उपयोग सर्वर एप्लिकेशन, Android डेवलपमेंट और बैकएंड सेवाओं के निर्माण के लिए सक्रिय रूप से किया जाता है। किसी भी डेवलपर के लिए प्रमुख कौशलों में से एक डेटाबेस के साथ काम करने की क्षमता है। इस लेख में हम समझेंगे कि Kotlin का उपयोग करके रिलेशनल डेटाबेस PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB से कैसे कनेक्ट किया जाए। सामग्री शुरुआती लोगों के लिए है: हम ड्राइवरों की स्थापना, कनेक्शन कॉन्फ़िगरेशन और बुनियादी CRUD-ऑपरेशन (बनाना, पढ़ना, अपडेट करना, हटाना) करने पर विचार करेंगे।
1. वातावरण और निर्भरताएँ तैयार करना
काम करने के लिए आपको Kotlin पर एक प्रोजेक्ट की आवश्यकता होगी (उदाहरण के लिए, Gradle या Maven का उपयोग करके)। हम Gradle का उपयोग करेंगे - Kotlin इकोसिस्टम में सबसे लोकप्रिय बिल्ड टूल। फ़ाइल build.gradle.kts में निम्नलिखित निर्भरताएँ जोड़ें:
dependencies { // PostgreSQL के लिए implementation("org.jetbrains.exposed:exposed-core:0.44.1") implementation("org.jetbrains.exposed:exposed-dao:0.44.1") implementation("org.jetbrains.exposed:exposed-jdbc:0.44.1") implementation("org.postgresql:postgresql:42.7.1")
// MongoDB के लिए implementation("org.mongodb:mongodb-driver-kotlin-sync:4.11.1") implementation("org.mongodb:bson-kotlinx:4.11.1")}Exposed Kotlin के लिए एक हल्की ORM-लाइब्रेरी है जो SQL डेटाबेस के साथ काम को सरल बनाती है। MongoDB के लिए हम MongoDB के आधिकारिक Kotlin-ड्राइवर का उपयोग करते हैं।
2. Exposed के माध्यम से PostgreSQL के साथ कार्य
2.1. डेटाबेस से कनेक्शन
पहले PostgreSQL से कनेक्ट करने के लिए एक ऑब्जेक्ट बनाते हैं। सुनिश्चित करें कि आपके कंप्यूटर पर PostgreSQL सर्वर चल रहा है और एक डेटाबेस (जैसे, testdb) बनाया गया है।
import org.jetbrains.exposed.sql.Databaseimport org.jetbrains.exposed.sql.transactions.transaction
fun main() { // स्थानीय DB से कनेक्शन Database.connect( url = "jdbc:postgresql://localhost:5432/testdb", driver = "org.postgresql.Driver", user = "postgres", password = "your_password" )
println("PostgreSQL से कनेक्शन सफलतापूर्वक स्थापित हुआ")}कनेक्शन के बाद SQL क्वेरीज़ निष्पादित की जा सकती हैं। Exposed क्वेरीज़ लिखने के लिए DSL (Domain-Specific Language) का उपयोग करता है।
2.2. तालिका बनाना और CRUD-ऑपरेशन
id, name और email फ़ील्ड वाली एक सरल तालिका Users परिभाषित करते हैं:
import org.jetbrains.exposed.sql.*import org.jetbrains.exposed.sql.transactions.transaction
object Users : Table() { val id = integer("id").autoIncrement() val name = varchar("name", 50) val email = varchar("email", 100)
override val primaryKey = PrimaryKey(id)}
fun main() { Database.connect(...)
transaction { // तालिका बनाना SchemaUtils.create(Users)
// INSERT (बनाना) Users.insert { it[name] = "इवान पेत्रोव" it[email] = "ivan@example.com" }
// SELECT (पढ़ना) val users = Users.selectAll().map { "${it[Users.id]}: ${it[Users.name]} (${it[Users.email]})" } println("उपयोगकर्ता: $users")
// UPDATE (अपडेट करना) Users.update({ Users.id eq 1 }) { it[name] = "इवान सिदोरोव" }
// DELETE (हटाना) Users.deleteWhere { Users.id eq 1 } }}जैसा कि आप देख सकते हैं, कोड सामान्य SQL के समान है, लेकिन शुद्ध Kotlin में लिखा गया है। Exposed स्वचालित रूप से नामों को एस्केप करता है और SQL-इंजेक्शन से बचाता है।
3. Kotlin Driver के माध्यम से MongoDB के साथ कार्य
3.1. MongoDB से कनेक्शन
MongoDB एक NoSQL डेटाबेस है जो डेटा को JSON-जैसे डॉक्यूमेंट के रूप में संग्रहीत करता है। कनेक्शन के लिए सिंक्रोनस ड्राइवर का उपयोग करते हैं:
import com.mongodb.kotlin.client.coroutine.MongoClientimport kot