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

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

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

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

परिचय: डेटाबेस के साथ काम करने के लिए Kotlin क्यों?

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

हम दो लोकप्रिय लाइब्रेरीज़ देखेंगे: Exposed (PostgreSQL के लिए) और KMongo (MongoDB के लिए)। आप एनवायरनमेंट सेट अप करना, प्रभावी क्वेरी लिखना और सामान्य गलतियों से बचना सीखेंगे।



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

Exposed Kotlin के लिए एक ORM-लाइब्रेरी है, जो दो API प्रदान करती है: SQL शैली में क्वेरी लिखने के लिए DSL (Domain-Specific Language) और ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण के लिए DAO (Data Access Object)। हम दोनों विकल्पों पर विचार करेंगे।



1.1. कनेक्शन और सेटअप

build.gradle.kts में डिपेंडेंसी जोड़ें:

dependencies {    implementation("org.jetbrains.exposed:exposed-core:0.41.1")    implementation("org.jetbrains.exposed:exposed-dao:0.41.1")    implementation("org.jetbrains.exposed:exposed-jdbc:0.41.1")    implementation("org.postgresql:postgresql:42.5.0")}

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

import org.jetbrains.exposed.sql.Databaseimport org.jetbrains.exposed.sql.transactions.transaction

fun main() { Database.connect( url = "jdbc:postgresql://localhost:5432/mydb", driver = "org.postgresql.Driver", user = "user", password = "password" ) println("PostgreSQL से कनेक्शन स्थापित हुआ")}


1.2. टेबल बनाना और CRUD-ऑपरेशन (DSL)

हम Users टेबल को परिभाषित करते हैं:

import org.jetbrains.exposed.sql.Tableimport org.jetbrains.exposed.sql.insertimport org.jetbrains.exposed.sql.selectAllimport org.jetbrains.exposed.sql.update

object Users : Table() { val id = integer("id").autoIncrement() val name = varchar("name", 50) val email = varchar("email", 100).uniqueIndex() override val primaryKey = PrimaryKey(id)}


CRUD-ऑपरेशन निष्पादित करें:

transaction {    // टेबल बनाना    SchemaUtils.create(Users)

// INSERT Users.insert { it[name] = "Алексей" it[email] = "alex@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 (deleteWhere का उपयोग करें) Users.deleteWhere { Users.id eq 2 }}


1.3. DAO-दृष्टिकोण

एक एंटिटी और DAO-क्लास बनाएं:

import org.jetbrains.exposed.dao.IntEntityimport org.jetbrains.exposed.dao.IntEntityClassimport org.jetbrains.exposed.dao.id.EntityIDimport org.jetbrains.exposed.dao.id.IntIdTable

object UsersDAO : IntIdTable() { val name = varchar("name", 50) val email = varchar("email", 100)}

class User(id: EntityID<Int>) : IntEntity(id) { companion object : IntEntityClass<User>(UsersDAO) var name by UsersDAO.name var email by UsersDAO.email}

// उपयोगtransaction { val newUser = User.new { name = "Мария" email = "maria@example.com" } println("ID के साथ उपयोगकर्ता बनाया गया: ${newUser.id.value}")}


2. KMongo के माध्यम से MongoDB के साथ काम करना

KMongo MongoDB के लिए एक कोरूटीन-ओरिएंटेड ड्राइवर है, जो आधिकारिक Java-ड्राइवर पर आधारित है। यह kotlinx.serialization और Jackson के माध्यम से सीरियलाइज़ेशन को सपोर्ट करता है।



2.1. KMongo कनेक्शन

build.gradle.kts में जोड़ें:

ब्लॉग

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