Kotlin और PostgreSQL: अपेक्षा से तेज़ बैकएंड लिखें

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

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

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

Kotlin और PostgreSQL: आपके बैकएंड के लिए अप्रत्याशित जोड़ी

\n\n

जब आधुनिक बैकएंड डेवलपमेंट की बात आती है, तो Kotlin और PostgreSQL अक्सर एक ही वाक्य में आते हैं। और यह कोई संयोग नहीं है। Kotlin JVM-दुनिया में संक्षिप्तता और कार्यात्मक विशेषताएं लाता है, जबकि PostgreSQL रिलेशनल डेटाबेस के बीच विश्वसनीयता और लचीलेपन का मानक बना हुआ है। इस गाइड में, हम इन दो तकनीकों को एक साथ लाने का तरीका समझेंगे, वास्तविक कोड लिखेंगे और सर्वोत्तम प्रथाओं पर विचार करेंगे।

\n\n

यदि आप पहले से बैकएंड के लिए Kotlin से परिचित हैं या अभी शुरू कर रहे हैं — यह लेख आपको एक स्पष्ट कार्य योजना देगा। चलिए शुरू करते हैं!

\n\n

Kotlin + PostgreSQL क्यों शानदार है?

\n\n

Kotlin एक ऐसी भाषा है जो पहली पंक्तियों से ही आपको प्यार में डाल देती है। यह Java के साथ संगत है, लेकिन साथ ही ढेर सारे बॉयलरप्लेट कोड से मुक्ति दिलाती है। और PostgreSQL सिर्फ "एक और डेटाबेस" नहीं है। यह JSON, फुल-टेक्स्ट सर्च, विंडो फंक्शन और PostGIS जैसे एक्सटेंशन के समर्थन वाला एक शक्तिशाली उपकरण है।

\n\n

साथ में, वे प्रदान करते हैं:

\n
    \n
  • टाइप-स्तर पर Null-सुरक्षा — Kotlin आपको क्वेरी परिणामों के साथ काम करते समय NPE से बचाता है।
  • \n
  • बॉक्स से बाहर एसिंक्रोनसी — Kotlin कोरूटीन कनेक्शन पूल के साथ काम करने के लिए आदर्श हैं।
  • \n
  • SQL के लिए DSL — Exposed जैसी लाइब्रेरी आपको भाषा के हिस्से के रूप में क्वेरी लिखने की अनुमति देती हैं।
  • \n
  • प्रदर्शन — JVM + अनुकूलित JDBC ड्राइवर उत्कृष्ट गति प्रदान करते हैं।
  • \n
\n\n

पर्यावरण तैयार करना: क्या स्थापित करना है

\n\n

कोड लिखने से पहले, सुनिश्चित करें कि आपके पास है:

\n
    \n
  • स्थापित JDK 17+
  • \n
  • IntelliJ IDEA (Community Edition पर्याप्त होगा)
  • \n
  • PostgreSQL 14+ (Docker के माध्यम से: docker run --name pg -e POSTGRES_PASSWORD=pass -p 5432:5432 -d postgres)
  • \n
  • SQL की बुनियादी समझ
  • \n
\n\n

IntelliJ में एक नया Gradle प्रोजेक्ट बनाएँ। build.gradle.kts में निर्भरताएँ जोड़ें:

\n\n
dependencies {\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    implementation("org.postgresql:postgresql:42.7.1")\n    implementation("com.zaxxer:HikariCP:5.1.0")\n    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")\n}
\n\n

HikariCP के माध्यम से PostgreSQL से कनेक्शन

\n\n

Kotlin में PostgreSQL के साथ काम करने के लिए हमें एक कनेक्शन पूल की आवश्यकता है। HikariCP डी-फैक्टो मानक है। यह तेज़, हल्का है और कुछ पंक्तियों में कॉन्फ़िगर किया जा सकता है।

\n\n

एक DatabaseFactory क्लास बनाएँ:

\n\n
import com.zaxxer.hikari.HikariConfig\nimport com.zaxxer.hikari.HikariDataSource\nimport org.jetbrains.exposed.sql.Database\n\nobject DatabaseFactory {\n    fun init() {\n        val config = HikariConfig().apply {\n            jdbcUrl = "jdbc:postgresql://localhost:5432/yourdb"\n            driverClassName = "org.postgresql.Driver"\n            username = "postgres"\n            password = "pass"\n            maximumPoolSize = 10\n            isAutoCommit = false\n            transactionIsolation = "TRANSACTION_REPEATABLE_READ"\n        }\n\n        val dataSource = HikariDataSource(config)\n        Database.connect(dataSource)\n    }\n}
\n\n

ध्यान दें: isAutoCommit = false हमें लेन-देन पर नियंत्रण देता है। यह डेटा स्थिरता के लिए महत्वपूर्ण है।

\n\n

Exposed ORM का उपयोग करके तालिकाएँ बनाना

\n\n

Exposed Kotlin के लिए एक हल्का ORM है जो अपने नियम नहीं थोपता। आप DSL और DAO ऑब्जेक्ट दोनों के साथ काम कर सकते हैं।

\n\n

एक उपयोगकर्ता मॉडल परिभाषित करें:

\n\n
import org.jetbrains.exposed.sql.Table\n\nobject Users : Table("users") {\n    val id = integer("id").autoIncrement()\n    val name = varchar("name", 100)\n    val email = varchar("email", 255).uniqueIndex()\n    val                

ब्लॉग

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