Kotlin में डेटाबेस के साथ काम करना: PostgreSQL और MongoDB व्यवहार में

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: Kotlin डेटाबेस के साथ काम करने के लिए एक बेहतरीन विकल्प क्यों है

\n

Kotlin, एक आधुनिक और संक्षिप्त प्रोग्रामिंग भाषा होने के नाते, डेवलपर्स को विभिन्न डेटाबेस के साथ बातचीत करने के लिए शक्तिशाली उपकरण प्रदान करता है। Java के साथ पूर्ण संगतता और लाइब्रेरी के अपने पारिस्थितिकी तंत्र के कारण, Kotlin आपको रिलेशनल (SQL) और डॉक्यूमेंट-ओरिएंटेड (NoSQL) दोनों स्टोरेज के साथ काम करने के लिए सुरक्षित, अभिव्यंजक और कुशल कोड लिखने की अनुमति देता है।

\n

इस लेख में, हम व्यावहारिक उदाहरणों के साथ दो लोकप्रिय डेटाबेस प्रबंधन प्रणालियों: PostgreSQL (रिलेशनल) और MongoDB (डॉक्यूमेंट) के लिए CRUD-संचालन (Create, Read, Update, Delete) का कनेक्शन और निष्पादन समझेंगे। आप सीखेंगे कि प्रोजेक्ट कैसे सेट अप करें, आधुनिक लाइब्रेरी (SQL के लिए Exposed और MongoDB के लिए KMongo) का उपयोग कैसे करें, और Kotlin की विशेषताओं को ध्यान में रखते हुए स्वच्छ कोड कैसे लिखें।

\n\n

1. Kotlin में PostgreSQL के साथ काम: Exposed लाइब्रेरी का उपयोग

\n

Kotlin में रिलेशनल डेटाबेस के साथ काम करने के कई तरीके हैं। हम Exposed लाइब्रेरी पर विचार करेंगे - Kotlin में लिखा गया एक हल्का ORM रैपर, जो SQL क्वेरी बनाने के लिए टाइप-सेफ DSL (Domain-Specific Language) प्रदान करता है।

\n\n

1.1. निर्भरताएँ जोड़ना

\n

फ़ाइल build.gradle.kts में निम्नलिखित निर्भरताएँ जोड़ें:

\n
dependencies {\n    implementation("org.jetbrains.exposed:exposed-core:0.41.1")\n    implementation("org.jetbrains.exposed:exposed-dao:0.41.1")\n    implementation("org.jetbrains.exposed:exposed-jdbc:0.41.1")\n    implementation("org.postgresql:postgresql:42.6.0")\n    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")\n}
\n\n

1.2. तालिका बनाना और DB से कनेक्ट करना

\n

कोड में "उपयोगकर्ता" इकाई और संबंधित तालिका को परिभाषित करें:

\n
import org.jetbrains.exposed.sql.*\nimport org.jetbrains.exposed.sql.transactions.transaction\nimport org.jetbrains.exposed.sql.SqlExpressionBuilder.eq\n\n// तालिका को परिभाषित करें\nobject Users : Table() {\n    val id = integer("id").autoIncrement()\n    val name = varchar("name", 255)\n    val email = varchar("email", 255).uniqueIndex()\n\n    override val primaryKey = PrimaryKey(id)\n}\n\n// उपयोगकर्ता के लिए Data class\ndata class User(val id: Int, val name: String, val email: String)\n\nfun main() {\n    // डेटाबेस से कनेक्शन\n    Database.connect(\n        url = "jdbc:postgresql://localhost:5432/mydb",\n        driver = "org.postgresql.Driver",\n        user = "postgres",\n        password = "password"\n    )\n\n    // तालिका बनाना (यदि मौजूद नहीं है)\n    transaction {\n        SchemaUtils.create(Users)\n    }\n}
\n\n

1.3. CRUD-संचालन

\n

अब रिकॉर्ड बनाने, पढ़ने, अपडेट करने और हटाने के बुनियादी संचालन को लागू करें:

\n
fun createUser(name: String, email: String): User {\n    return transaction {\n        val insertId = Users.insert {\n            it[Users.name] = name\n            it[Users.email] = email\n        } get Users.id\n\n        User(\n            id = insertId,\n            name = name,\n            email = email\n        )\n    }\n}\n\nfun readUserById(id: Int): User? {\n    return transaction {\n        Users.selectAll().where { Users.id eq id }\n            .singleOrNull()\n            ?.let { row ->\n                User(\n                    id = row[Users.id],\n                    name = row[Users.name],\n                    email = row[Users.email]\n                )\n            }\n    }\n}\n\nfun updateUserEmail(id: Int, newEmail: String) {\n    transaction {\n        Users.update({ Users.id eq id }) {\n            it[email] = newEmail\n        }\n    }\n}\n\nfun deleteUser(id: Int) {\n    transaction {\n        Users.deleteWhere { Users.id eq id }\n    }\n}
\n

Exposed के कारण, Kotlin कोड संक्षिप्त और टाइप-सेफ हो जाता है। कॉलम या तालिका के नामों में त्रुटियाँ पकड़ी जाती हैं

ब्लॉग

पुस्तक अनुशंसाएँ