मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

SQLite डेटाबेस कैसे खोलें या बनाएँ

उद्देश्य. एक SQLite डेटाबेस खोलना (या यदि मौजूद न हो तो बनाना) और उसकी टेबल बनाना। CrossFly में प्रवेश द्वार SqliteDb है, एक AutoCloseable हैंडल — नेटिव कनेक्शन के बंद होने की गारंटी के लिए हमेशा try (...) उपयोग करें।

उपयोग किए गए APIs

  • SqliteDb.open(String filename) — read/write में एक अनएन्क्रिप्टेड डेटाबेस खोलता/बनाता है (OPEN_DEFAULT = OPEN_READWRITE | OPEN_CREATE)। एक SqliteDb लौटाता है।
  • SqliteDb.openMemory() — एक इन-मेमोरी डेटाबेस (:memory:) खोलता है, अस्थिर: बंद होने पर गायब हो जाता है। परीक्षण और अस्थायी कैश के लिए आदर्श।
  • SqliteDb.exec(String sql) — एक या अधिक निर्देश बिना परिणाम के चलाता है (DDL, PRAGMA, बैच DML)। CREATE TABLE, CREATE INDEX, PRAGMA ... के लिए उपयोग करें। त्रुटि पर SqliteException फेंकता है।
  • SqliteDb.close() — नेटिव कनेक्शन बंद करता है। Idempotent (दो बार कॉल करना सुरक्षित है)। try-with-resources इसे स्वचालित रूप से कॉल करता है।
  • SqliteDb.version() — SQLite लाइब्रेरी की संस्करण स्ट्रिंग लौटाता है (डायग्नोस्टिक्स के लिए उपयोगी)।

फ़ाइल पथ. एक लिखने-योग्य फ़ाइल पथ पास करें (प्लेटफ़ॉर्म के अनुसार)। यहाँ किसी भी चीज़ के लिए Gdx.graphics का उपयोग न करें; SQLite UI से स्वतंत्र है। प्लेटफ़ॉर्म-अनुसार फ़ाइल स्थान के लिए, storage गाइड देखें।

पूरा उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)

package com.exemplo;

import dev.crossfly.ui.*;                     // Window
import dev.crossfly.ui.layout.*;             // VerticalLayout
import dev.crossfly.sqlite.*;                // SqliteDb, SqliteException

/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      // 1) फ़ाइल में डेटाबेस (यदि मौजूद नहीं तो बनाया गया)
      try (SqliteDb db = SqliteDb.open("app.db"))
      {
         db.exec(
            "CREATE TABLE IF NOT EXISTS person(" +
            "  id   INTEGER PRIMARY KEY," +
            "  name TEXT NOT NULL," +
            "  age  INTEGER)");
         // ... यहाँ डेटाबेस का उपयोग करें ...
      }
      // try से बाहर निकलते ही कनेक्शन बंद हो जाता है

      // 2) मेमोरी में डेटाबेस (अस्थिर) — परीक्षण के लिए अच्छा
      try (SqliteDb mem = SqliteDb.openMemory())
      {
         mem.exec("CREATE TABLE t(id INTEGER PRIMARY KEY, v TEXT)");
         // ... केवल तब तक जीवित रहता है जब तक 'mem' खुला है ...
      }
   }
}

नीचे दिया गया अंश केवल मुख्य भाग दिखाता है। इसे चलाने के लिए, इसे ऊपर दिए गए MainWindow कंकाल में रखें।

न्यूनतम अंश

// स्रोत में सत्यापित: SqliteDb.open / openMemory / exec
import dev.crossfly.sqlite.*;

// 1) फ़ाइल में डेटाबेस (यदि मौजूद नहीं तो बनाया गया)
try (SqliteDb db = SqliteDb.open("app.db"))
{
   db.exec(
      "CREATE TABLE IF NOT EXISTS person(" +
      "  id   INTEGER PRIMARY KEY," +
      "  name TEXT NOT NULL," +
      "  age  INTEGER)");
   // ... यहाँ डेटाबेस का उपयोग करें ...
}
// try से बाहर निकलते ही कनेक्शन बंद हो जाता है

// 2) मेमोरी में डेटाबेस (अस्थिर) — परीक्षण के लिए अच्छा
try (SqliteDb mem = SqliteDb.openMemory())
{
   mem.exec("CREATE TABLE t(id INTEGER PRIMARY KEY, v TEXT)");
   // ... केवल तब तक जीवित रहता है जब तक 'mem' खुला है ...
}

और गहराई से जानें

क्या यह पृष्ठ उपयोगी था?