androidx.sqlite
लाइब्रेरी में बेसिक के साथ-साथ ऐब्स्ट्रैक्ट इंटरफ़ेस भी हैं
इस टूल का इस्तेमाल करके, अपनी लाइब्रेरी बनाई जा सकती हैं.
SQLite. आप Room की लाइब्रेरी का इस्तेमाल कर सकते हैं. यहां आपको
SQLite पर एक ऐब्स्ट्रक्शन लेयर, जो डेटाबेस को बेहतर तरीके से ऐक्सेस करती है.
SQLite की सभी सुविधाओं का इस्तेमाल किया जा रहा है.
डिपेंडेंसी सेट अप करना
androidx.sqlite
का मौजूदा वर्शन, जो Kotlin मल्टी-प्लैटफ़ॉर्म के साथ काम करता है
(KMP) 2.5.0-alpha01 या उससे बाद का है.
अपने KMP प्रोजेक्ट में SQLite सेटअप करने के लिए, आर्टफ़ैक्ट के लिए डिपेंडेंसी जोड़ें
build.gradle.kts
फ़ाइल में अपने मॉड्यूल के लिए:
androidx.sqlite:sqlite
- SQLite ड्राइवर इंटरफ़ेसandroidx.sqlite:sqlite-bundled
- बंडल किए गए ड्राइवर को लागू करना
SQLite ड्राइवर एपीआई
androidx.sqlite
लाइब्रेरी ग्रुप, कम लेवल के एपीआई ऑफ़र करते हैं. इनका इस्तेमाल करके, इनके साथ कम्यूनिकेट किया जा सकता है
SQLite लाइब्रेरी का इस्तेमाल करते समय,
androidx.sqlite:sqlite-bundled
या होस्ट प्लैटफ़ॉर्म, जैसे कि Android या iOS में
androidx.sqlite:sqlite-framework
का इस्तेमाल करते समय. ये एपीआई, Google Cloud की
SQLite C API की सुविधाओं का इस्तेमाल करें.
इसके तीन मुख्य इंटरफ़ेस होते हैं:
SQLiteDriver
- SQLite का इस्तेमाल करने के लिए, यह एंट्री पॉइंट है और यह का इस्तेमाल किया जा सकता है.SQLiteConnection
-sqlite3
ऑब्जेक्ट को दिखाता है.SQLiteStatement
-sqlite3_stmt
ऑब्जेक्ट को दिखाता है.
नीचे दिए गए उदाहरण में मुख्य एपीआई दिखाए गए हैं:
fun main() {
val databaseConnection = BundledSQLiteDriver().open("todos.db")
databaseConnection.execSQL(
"CREATE TABLE IF NOT EXISTS Todo (id INTEGER PRIMARY KEY, content TEXT)"
)
databaseConnection.prepare(
"INSERT OR IGNORE INTO Todo (id, content) VALUES (? ,?)"
).use { stmt ->
stmt.bindInt(index = 1, value = 1)
stmt.bindText(index = 2, value = "Try Room in the KMP project.")
stmt.step()
}
databaseConnection.prepare("SELECT content FROM Todo").use { stmt ->
while (stmt.step()) {
println("Action item: ${stmt.getText(0)}")
}
}
databaseConnection.close()
}
SQLite C API की तरह ही, आम तौर पर इन एपीआई का इस्तेमाल किया जाता है:
- इंस्टैंशिएट किए गए
SQLiteDriver
का इस्तेमाल करके डेटाबेस कनेक्शन खोलें लागू करना. SQLiteConnection.prepare()
का इस्तेमाल करके SQL स्टेटमेंट तैयार करेंSQLiteStatement
लागू करने का तरीका:bind*()
फ़ंक्शन का इस्तेमाल करके, वैकल्पिक रूप से बाइंडिंग आर्ग्युमेंट.step()
फ़ंक्शन का इस्तेमाल करके, नतीजे के सेट पर इटरेट करना.get*()
फ़ंक्शन का इस्तेमाल करके, नतीजे के सेट से कॉलम पढ़े जा रहे हैं.
ड्राइवर को लागू करना
नीचे दी गई टेबल में, ड्राइवर लागू करने की उपलब्ध जानकारी दी गई है:
क्लास का नाम |
सह-प्रॉडक्ट |
इस्तेमाल किए जा सकने वाले प्लैटफ़ॉर्म |
AndroidSQLiteDriver |
androidx.sqlite:sqlite-framework |
Android |
NativeSQLiteDriver |
androidx.sqlite:sqlite-framework |
iOS, Mac, और Linux |
BundledSQLiteDriver |
androidx.sqlite:sqlite-bundled |
Android, iOS, Mac, Linux, और JVM (डेस्कटॉप) |
इस्तेमाल करने के लिए सुझाया गया तरीका, BundledSQLiteDriver
में उपलब्ध है
androidx.sqlite:sqlite-bundled
. इसमें SQLite लाइब्रेरी शामिल है, जिसे
स्रोत है, जो सबसे अप-टू-डेट वर्शन ऑफ़र करता है और सभी
केMP प्लैटफ़ॉर्म का इस्तेमाल कर सकते हैं.
SQLite ड्राइवर और रूम
ड्राइवर एपीआई, SQLite डेटाबेस के साथ कम लेवल के इंटरैक्शन के लिए काम के होते हैं. एक ऐसी सुविधा वाली लाइब्रेरी के लिए जो SQLite का ज़्यादा बेहतर ऐक्सेस देती है कमरा बुक करने का सुझाव दिया जाता है.
RoomDatabase
, डेटाबेस से जुड़ी कार्रवाइयां करने के लिए SQLiteDriver
का इस्तेमाल करता है और
को लागू करने के तरीके को कॉन्फ़िगर करना ज़रूरी है.
RoomDatabase.Builder.setDriver()
. कमरे की सुविधाएं
RoomDatabase.useReaderConnection
और
RoomDatabase.useWriterConnection
: मैनेज की जा रही सेवा के ज़्यादा सीधे ऐक्सेस के लिए
डेटाबेस कनेक्शन.