Kotlin में डेटाबेस के साथ कार्य: शुरुआती लोगों के लिए PostgreSQL और MongoDB

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

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

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

Kotlin में डेटाबेस के साथ काम करने का परिचय

\n\n

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

\n\n

हम आधुनिक लाइब्रेरी का उपयोग करेंगे जो इडियोमैटिक Kotlin के लिए अधिकतम रूप से अनुकूलित हैं:

\n
    \n
  • Exposed — SQL डेटाबेस (PostgreSQL, MySQL आदि) के लिए JetBrains का ORM-फ्रेमवर्क।
  • \n
  • KMongo — MongoDB के लिए रिएक्टिव ODM क्लाइंट, जो कोरूटीन पर बनाया गया है।
  • \n
\n\n

यह लेख शुरुआती लोगों के लिए है: हम प्रोजेक्ट सेटअप, DB से कनेक्शन और डेटा इन्सर्ट, रीड, अपडेट और डिलीट के सरल उदाहरणों पर चर्चा करेंगे।

\n\n

1. प्रोजेक्ट सेटअप और डिपेंडेंसी जोड़ना

\n\n

आरंभ करने के लिए, एक नया Kotlin प्रोजेक्ट बनाएं (उदाहरण के लिए, IntelliJ IDEA के माध्यम से Gradle या Maven के साथ)। build.gradle.kts फ़ाइल में आवश्यक डिपेंडेंसी जोड़ें।

\n\n

PostgreSQL (Exposed) के लिए Gradle डिपेंडेंसी

\n
dependencies {\n    // Exposed\n    implementation("org.jetbrains.exposed:exposed-core:0.44.1")\n    implementation("org.jetbrains.exposed:exposed-dao:0.44.1")\n    implementation("org.jetbrains.exposed:exposed-jdbc:0.44.1")\n\n    // PostgreSQL ड्राइवर\n    implementation("org.postgresql:postgresql:42.7.1")\n\n    // कनेक्शन पूल (HikariCP)\n    implementation("com.zaxxer:HikariCP:5.1.0")\n}
\n\n

MongoDB (KMongo) के लिए Gradle डिपेंडेंसी

\n
dependencies {\n    // KMongo (कोरूटीन के साथ)\n    implementation("org.litote.kmongo:kmongo-coroutine:4.11.0")\n\n    // Ktor क्लाइंट (यदि रिएक्टिव ड्राइवर की आवश्यकता हो)\n    implementation("org.litote.kmongo:kmongo-async:4.11.0")\n}
\n\n

प्रोजेक्ट सिंक्रोनाइज़ेशन के बाद, आप कनेक्शन शुरू कर सकते हैं।

\n\n

2. Exposed के माध्यम से PostgreSQL के साथ कार्य

\n\n

Exposed दो दृष्टिकोण प्रदान करता है: DSL (टाइप-सेफ SQL क्वेरी) और DAO (ऑब्जेक्ट-रिलेशनल मैपिंग)। हम DAO पर विचार करेंगे - यह शुरुआती लोगों के लिए अधिक सहज है।

\n\n

डेटाबेस से कनेक्शन

\n
import org.jetbrains.exposed.sql.Database\nimport org.jetbrains.exposed.sql.transactions.transaction\nimport com.zaxxer.hikari.HikariConfig\nimport com.zaxxer.hikari.HikariDataSource\n\nfun connectToPostgres() {\n    val config = HikariConfig().apply {\n        jdbcUrl = "jdbc:postgresql://localhost:5432/mydb"\n        driverClassName = "org.postgresql.Driver"\n        username = "user"\n        password = "password"\n        maximumPoolSize = 10\n    }\n    val dataSource = HikariDataSource(config)\n    Database.connect(dataSource)\n    println("PostgreSQL से कनेक्शन स्थापित!")\n}
\n\n

तालिका और एंटिटी की परिभाषा

\n
import org.jetbrains.exposed.dao.id.IntIdTable\nimport org.jetbrains.exposed.dao.IntEntity\nimport org.jetbrains.exposed.dao.IntEntityClass\n\n// तालिका को परिभाषित करें\nobject UsersTable : IntIdTable("users") {\n    val name = varchar("name", 100)\n    val email = varchar("email", 255).uniqueIndex()\n    val age = integer("age").default(18)\n}\n\n// Entity (DAO) को परिभाषित करें\nclass UserEntity(id: EntityID<Int>) : IntEntity(id) {\n    companion object : IntEntityClass<UserEntity>(UsersTable)\n\n    var name by UsersTable.name\n    var email by UsersTable.email\n    var age by UsersTable.age\n}
\n\n

CRUD संचालन

\n
fun performCRUD() {\n    transaction {\n        // तालिका बनाएं (यदि मौजूद नहीं है)\n        SchemaUtils.create(UsersTable)\n\n        // INSERT\n        val newUser = UserEntity.new {\n            name = "इवान पेट्रोव"\n            email = "ivan@example.com"\n            age = 25\n        }\n        println("उपयोगकर्ता बनाया गया")                

ब्लॉग

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