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

संपत्ति फ़ोल्डर से डेटाबेस पढ़ना

पूर्ण उपयोग के लिए एक पैकेज्ड डेटाबेस (यानी एक संपत्ति के रूप में शामिल) का उपयोग करने के लिए डेटाबेस को अनज़िप (स्वचालित) होना चाहिए और एक उपयुक्त स्थान पर कॉपी किया जाना चाहिए (अक्सर data/data/<package_name>/databases/<database_name> जहां <package_name> और <database_name> क्रमशः ऐप के पैकेज नाम और डेटाबेस नाम के अनुसार होगा)।

डेटाबेस को "पैकेज" करने के लिए संपत्ति फ़ोल्डर में शामिल किया जाना चाहिए और अधिमानतः डेटाबेस फ़ोल्डर में (आवश्यक है यदि SQLiteAssetHelper बिना संशोधन के उपयोग कर रहे हैं )।

इसके अतिरिक्त प्रतिलिपि वास्तव में डेटाबेस खोलने से पहले की जानी चाहिए जिसके बाद इसे खोला जा सकता है।

SQLiteAssetHelper का उपयोग करना

  1. पैक किए जाने के लिए डेटाबेस बनाने के लिए पहला कदम है, इसे कवर नहीं किया जा रहा है, क्योंकि कई उपकरण उपलब्ध हैं। इस उदाहरण के लिए डेटाबेस test.db . नाम की एक फ़ाइल है

  2. तब आपको अपना प्रोजेक्ट बनाना चाहिए, इस मामले में प्रोजेक्ट को DBtest . कहा गया है एक Compnay डोमियन के साथ com.DBtest . के रूप में इसलिए पैकेज का नाम dbtest.com.dbtest है ।

  3. अगला चरण डेटाबेस को एसेट फ़ोल्डर में कॉपी करना है।

    1. संपत्ति बनाना src/main . में फ़ोल्डर फ़ोल्डर, अगर यह पहले से मौजूद नहीं है।
    2. **संपत्ति में डेटाबेस"" फ़ोल्डर बनाना फ़ोल्डर, अगर यह पहले से मौजूद नहीं है।
    3. डेटाबेस फ़ाइल की प्रतिलिपि बनाना (test.db इस उदाहरण में) डेटाबेस फ़ोल्डर में।

  4. अगला चरण प्रोजेक्ट को ऐप के build.gradle में शामिल करके SQLiteAssetHelper का उपयोग करने के लिए सेटअप करना है ।

    1. build.gradle संपादित करें ऐप . में फ़ोल्डर।
    2. पंक्ति जोड़ें implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1' निर्भरता अनुभाग के भीतर।
    3. अभी समन्वयित करें क्लिक करें

  1. एक वर्ग बनाएं जो नए/अब उपलब्ध SQLiteAssethelper वर्ग का उपवर्ग हो। इस अभ्यास के लिए इसे DBHelper . कहा जाएगा ।

    1. मुख्य गतिविधि पर राइट क्लिक करें जावा क्लास में, नया और फिर जावा क्लास चुनें।
    2. नाम फ़ील्ड इनपुट में DBHelper
    3. सुपरक्लास फ़ील्ड में SQLiteAsset टाइप करना प्रारंभ करें (अब तक SQliteAssetHelper वर्ग चयन योग्य होगा), इसलिए इसे चुनें। यह होना चाहिए:-
    4. ठीक क्लिक करें।
  2. . की तर्ज पर DBHelper क्लास के लिए कंस्ट्रक्टर बनाएं

:-

public class DBHelper extends SQLiteAssetHelper {

    public static final String DBNAME = "test.db"; //<<<< must be same as file name
    public static final int DBVERSION = 1;

    public DBHelper(Context context) {
        super(context,DBNAME,null,DBVERSION);
    }
}
  1. DBHelper का एक उदाहरण बनाएं और फिर डेटाबेस तक पहुंचें।

    1. ध्यान दें आसानी के लिए एक अन्य वर्ग जिसे CommonSQLiteUtilities . कहा जाता है , जैसा कि से कॉपी किया गया है क्या ऐसी कोई विधियाँ हैं जो सामान्य SQLite समस्याओं को हल करने में सहायता करती हैं?
    2. की तर्ज पर कुछ का उपयोग करके DBHelper cclass का एक उदाहरण बनाएं

      • DBHelper mDBHlpr = new DBHelper(this);
    3. CommonSQLiteUtilities का उपयोग करते हुए डेटाबेस को एक्सेस किया गया था :-

      • CommonSQLiteUtilities.logDatabaseInfo(mDBHlpr.getWritableDatabase());
    4. मुख्य गतिविधि पूरी तरह से बन गई

:-

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        DBHelper mDBHlpr = new DBHelper(this);
        CommonSQLiteUtilities.logDatabaseInfo(mDBHlpr.getWritableDatabase());
    }
}

परिणाम एक सफल रन लॉगिंग था :-

04-11 06:12:55.091 1401-1401/dbtest.com.dbtest W/SQLiteAssetHelper: copying database from assets...
    database copy complete
04-11 06:12:55.123 1401-1401/dbtest.com.dbtest I/SQLiteAssetHelper: successfully opened database test.db
04-11 06:12:55.127 1401-1401/dbtest.com.dbtest D/SQLITE_CSU: DatabaseList Row 1 Name=main File=/data/data/dbtest.com.dbtest/databases/test.db
    Database Version = 1
    Table Name = mytable Created Using = CREATE TABLE mytable (
        _id INTEGER PRIAMRY KEY, 
        mydata TEXT, 
        inserted INTEGER DEFAULT CURRENT_TIMESTAMP
    )
    Table = mytable ColumnName = _id ColumnType = INTEGER PRIAMRY KEY Default Value = null PRIMARY KEY SEQUENCE = 0
    Table = mytable ColumnName = mydata ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
    Table = mytable ColumnName = inserted ColumnType = INTEGER Default Value = CURRENT_TIMESTAMP PRIMARY KEY SEQUENCE = 0
    Table Name = android_metadata Created Using = CREATE TABLE android_metadata (locale TEXT)
    Table = android_metadata ColumnName = locale ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
  • पहली दो पंक्तियां SQliteAssethelper . से हैं , बाकी logDatabaseInfo . से हैं CommonSQLiteUtilities . की विधि कक्षा।
  • बाद में चलने पर डेटाबेस की प्रतिलिपि नहीं बनाई जाएगी क्योंकि यह पहले से मौजूद है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक ऑफ़लाइन-प्रथम देशी Android ऐप कैसे विकसित करें

  2. SQLite डेटाबेस में सभी अनुक्रमणिका सूचीबद्ध करें

  3. लौटाए गए उरी से डेटाबेस में डाले गए एक नए रिकॉर्ड की आईडी प्राप्त करें

  4. sqlite में रिकॉर्ड करने के लिए डेटा सम्मिलित करना

  5. SQLite परिणामों में टेक्स्ट की लंबी पंक्तियों को कैसे लपेटें?