एंटिटी और DAO
तालिकाएँ और डेटा एक्सेस ऑब्जेक्ट परिभाषित करें।
एंटिटी और DAO, CoddyKit पर Android Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Android Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Room क्या है
Room एक स्थायी-संग्रहण लाइब्रेरी है, जो SQLite के ऊपर एक अमूर्त परत प्रदान करती है। यह आपको संकलन-समय पर जाँची गई क्वेरी के साथ डेटाबेस की पंक्तियों को Kotlin ऑब्जेक्ट के रूप में इस्तेमाल करने देती है।
Room के तीन निर्माण खंड
- Entity — एक तालिका, जिसे डेटा क्लास के रूप में दर्शाया जाता है।
- DAO — डेटा एक्सेस ऑब्जेक्ट, जो क्वेरी परिभाषित करता है।
- Database — entities और DAOs को एक साथ जोड़ता है (अगले पाठ में)।
Entity परिभाषित करना
किसी डेटा क्लास पर @Entity एनोटेशन लगाएँ। हर प्रॉपर्टी एक कॉलम बन जाती है।
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val email: String
)प्राथमिक कुंजियाँ
हर entity को एक @PrimaryKey की आवश्यकता होती है। Room को ID अपने-आप बनाने देने के लिए autoGenerate का उपयोग करें।
@Entity
data class Note(
@PrimaryKey(autoGenerate = true)
val id: Int = 0,
val text: String
)कॉलम अनुकूलित करना
कॉलम का नाम बदलने या उसका प्रकार निर्धारित करने के लिए @ColumnInfo का उपयोग करें।
import androidx.room.ColumnInfo
@Entity
data class User(
@PrimaryKey val id: Int,
@ColumnInfo(name = "full_name")
val name: String
)DAO क्या है
DAO एक ऐसा इंटरफ़ेस है जिस पर @Dao एनोटेशन लगा होता है। यह वह विधियाँ घोषित करता है जिनका उपयोग आपका ऐप डेटा पढ़ने और लिखने के लिए करता है। Room इसका कार्यान्वयन आपके लिए तैयार करता है।
डालना, अपडेट करना, हटाना
Room बुनियादी कार्यों के लिए सुविधाजनक एनोटेशन प्रदान करता है।
@Dao
interface UserDao {
@Insert
suspend fun insert(user: User)
@Update
suspend fun update(user: User)
@Delete
suspend fun delete(user: User)
}संघर्ष की रणनीतियाँ
पहले से मौजूद पंक्ति डालते समय onConflict के साथ एक रणनीति चुनें।
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun upsert(user: User)@Query के साथ कस्टम क्वेरी
@Query एनोटेशन आपको SQL लिखने देता है। Room आपके स्कीमा के विरुद्ध संकलन-समय पर इसकी जाँच करता है।
@Query("SELECT * FROM users WHERE id = :id")
suspend fun getById(id: Int): User?suspend फ़ंक्शन क्यों
डेटाबेस I/O मुख्य थ्रेड पर नहीं चलना चाहिए। DAO विधियों पर suspend लगाने से, कॉरूटीन से कॉल किए जाने पर Room उन्हें मुख्य थ्रेड से अलग चलाता है और UI में रुकावट रोकता है।
संकलन-समय की सुरक्षा
Room का एक बड़ा लाभ यह है कि यदि आप @Query में कॉलम का नाम गलत लिखते हैं, तो बिल्ड विफल हो जाता है। आप त्रुटियों को रनटाइम के बजाय पहले ही पकड़ लेते हैं।
त्वरित जाँच
Entities और DAOs की अपनी समझ जाँचें।
पुनरावलोकन
आपने सीखा:
@Entityकिसी डेटा क्लास को@PrimaryKeyवाली तालिका के रूप में परिभाषित करता है।@Daoक्वेरी, डालने, अपडेट करने और हटाने की विधियाँ घोषित करता है।@Queryमें मौजूद SQL की जाँच संकलन-समय पर होती है।- मुख्य थ्रेड से अलग I/O के लिए DAO विधियाँ
suspendहोनी चाहिए।
एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 36
- पाठ
- 152
अक्सर पूछे जाने वाले प्रश्न
क्या “एंटिटी और DAO” पाठ निःशुल्क है?
हाँ — Android Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “एंटिटी और DAO” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“एंटिटी और DAO” में मैं क्या सीखूँगा?
तालिकाएँ और डेटा एक्सेस ऑब्जेक्ट परिभाषित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Android Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Android Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Android Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“एंटिटी और DAO” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Android Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Android Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- एंटिटी और DAO
- Room डेटाबेस क्लास
- क्वेरी और संबंध
- Flow से डेटा देखना