SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

एक sqlite डेटाबेस प्रारंभ करें android

अन्य उत्तरों का उत्तर देने के लिए प्रतीत नहीं हुआ कि वास्तव में प्रारंभिक मूल्यों के साथ डेटाबेस को कैसे पॉप्युलेट किया जाए, इसलिए मैं साझा करूंगा कि मैंने इसे यहां कैसे किया।

मूल रूप से आप अपने डेटाबेस कॉलम को एक xml फ़ाइल में स्ट्रिंग सरणी के रूप में सहेजते हैं। मैं सिर्फ एक सरणी दिखाऊंगा लेकिन आप अन्य स्तंभों के लिए और अधिक कर सकते हैं। (हालांकि, आपको सावधान रहना होगा, हालांकि, कई स्तंभों के साथ सरणी क्रम को गड़बड़ नहीं करना है, और इस प्रकार आपकी डेटाबेस पंक्तियों को गड़बड़ाना है।)

एक /res/values/arrays.xml फ़ाइल बनाएं और उसमें सरणी जोड़ें।

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="my_array">

            <item>string 1</item>
            <item>string 2</item>
            <item>string 3</item>
            <item>string 4</item>
            <item>string 5</item>

    </string-array>

</resources>

जब आप अपने सहायक वर्ग में डेटाबेस बनाते हैं तो आप उस सरणी को प्राप्त कर सकते हैं। यहाँ मैंने क्या किया:

private static class DatabaseHelper extends SQLiteOpenHelper {

    private final Context fContext;

    // constructor
    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        fContext = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLE_NAME + " ("
                + FIRST_COLUMN + " INTEGER PRIMARY KEY,"
                + SECOND_COLUMN + " TEXT NOT NULL,"
                + THIRD_COLUMN + " INTEGER,"
                + FOURTH_COLUMN + " TEXT NOT NULL"
                + ");");

        // Initialize the db with values from my_array.xml
        final int DEFAULT_THIRD_COLUMN = 1;
        final String DEFAULT_FOURTH_COLUMN = "";
        ContentValues values = new ContentValues();
        Resources res = fContext.getResources();
        String[] myArray = res.getStringArray(R.array.my_array);
        for (String item : myArray){
            values.put(SECOND_COLUMN, item);
            values.put(THIRD_COLUMN, DEFAULT_THIRD_COLUMN);
            values.put(FOURTH_COLUMN, DEFAULT_FOURTH_COLUMN);
            db.insert(TABLE_NAME, null, values);
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);

    }
}

अधिक सहायता के लिए ये लिंक देखें:

  • स्ट्रिंग संसाधन - स्ट्रिंग सरणी दस्तावेज़
  • एंड्रॉइड:स्ट्रिंग सरणी (SQLite) का उपयोग करके संसाधन फ़ाइल से तालिका भरना

एक और चीज जो मैंने की है वह है डेटाबेस को समय से पहले बनाना और फिर ऐप इंस्टॉल होने पर इसे डेटाबेस फ़ोल्डर में कॉपी करना। यदि आपके पास बड़ी मात्रा में डेटा है और आप इंटरनेट से डेटाबेस डाउनलोड नहीं करना चाहते हैं तो यह बेहतर काम कर सकता है। यदि आप अपने डेटाबेस को कॉपी करना चाहते हैं तो यह उत्तर देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite में 4 सारणीबद्ध आउटपुट मोड

  2. SQLite का उपयोग करके Android ListView

  3. SQLite में किसी विशेष दिनांक/समय के बाद से सेकंड की संख्या की गणना करें

  4. SQLite क्वेरी परिणामों से INSERT स्टेटमेंट जेनरेट करें

  5. SQLite में गैर-संख्यात्मक मान वापस करने के 2 तरीके