Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

Android sqlite में दोहराव को दूर करने के लिए DISTINCT का उपयोग कैसे करें?

<घंटा/>

उदाहरण में आने से पहले, हमें पता होना चाहिए कि एंड्रॉइड में एसक्लाइट डेटा बेस क्या है। SQLite एक ओपन सोर्स SQL ​​डेटाबेस है जो किसी डिवाइस पर टेक्स्ट फ़ाइल में डेटा स्टोर करता है। Android अंतर्निहित SQLite डेटाबेस कार्यान्वयन के साथ आता है। SQLite सभी रिलेशनल डेटाबेस सुविधाओं का समर्थन करता है। इस डेटाबेस तक पहुँचने के लिए, आपको JDBC, ODBC आदि जैसे किसी भी प्रकार के कनेक्शन स्थापित करने की आवश्यकता नहीं है।

यह उदाहरण दर्शाता है कि Android sqlite में दोहराव को हटाने के लिए DISTINCT का उपयोग कैसे करें।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

    

उपरोक्त कोड में, हमने नाम और वेतन को संपादन टेक्स्ट के रूप में लिया है, जब उपयोगकर्ता सेव बटन पर क्लिक करता है तो यह डेटा को एसक्लाइट डेटा बेस में संग्रहीत करेगा। कर्सर से सूचीदृश्य अपडेट करने के लिए मान डालने के बाद रीफ्रेश बटन पर क्लिक करें बिना डुप्लीकेशन के . यदि उपयोगकर्ता अपडेट बटन पर क्लिक करता है तो यह डेटा को अपडेट कर देगा।

चरण 3 - src/MainActivity.java

में निम्न कोड जोड़ें <पूर्व>पैकेज com.example.andy.myapplication;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.ArrayAdapter;import android.widget.Button;आयात android.widget.EditText;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;सार्वजनिक वर्ग MainActivity AppCompatActivity का विस्तार करता है {बटन सेव, रिफ्रेश; संपादन टेक्स्ट नाम, वेतन; निजी सूची दृश्य सूची दृश्य; @Override संरक्षित शून्य पर क्रिएट (बंडल readdInstanceState) {super.onCreate (readdInstanceState); setContentView(R.layout.activity_main); अंतिम डेटाबेस हेल्पर =नया डेटाबेस हेल्पर (यह); अंतिम ArrayList array_list =helper.getAllCotacts (); नाम =findViewById (R.id.name); वेतन =findViewById (R.id.salary); सूची दृश्य =findViewById (R.id.listView); अंतिम ArrayAdapter arrayAdapter =नया ArrayAdapter (MainActivity.this, android.R.layout.simple_list_item_1, array_list); listView.setAdapter (सरणी एडेप्टर); findViewById(R.id.refresh).setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) { array_list.clear(); array_list.addAll(helper.getAllCotacts()); arrayAdapter.notifyDataSetChanged(); listView.invalidateViews (); listView.refreshDrawableState (); } }); findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {if (!name.getText().toString().isEmpty() &&!salary.getText( ).toString().isEmpty()) { अगर (helper.insert(name.getText().toString(), वेतन.getText().toString())) { Toast.makeText(MainActivity.this, "Inserted" , Toast.LENGTH_LONG).show(); } और { Toast.makeText(MainActivity.this, "Not Insert", Toast.LENGTH_LONG).show(); } }else { name.setError("Enter NAME"); वेतन .setError("वेतन दर्ज करें"); } } }); }}

चरण 4 - निम्न कोड को src/ DatabaseHelper.java

. में जोड़ें <पूर्व>पैकेज com.example.andy.myapplication;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteException;आयात android.database.sqlite.SQLiteOpenHelper;import java.io.IOException;import java.util.ArrayList;class DatabaseHelper SQLiteOpenHelper का विस्तार करता है {सार्वजनिक स्थिर अंतिम स्ट्रिंग DATABASE_NAME ="salaryDatabase5"; सार्वजनिक स्थिर अंतिम स्ट्रिंग CONTACTS_TABLE_NAME ="वेतन विवरण"; सार्वजनिक डेटाबेस हेल्पर (संदर्भ संदर्भ) {सुपर (संदर्भ, DATABASE_NAME, अशक्त, 1); } @ ओवरराइड सार्वजनिक शून्य पर क्रिएट (SQLiteDatabase डीबी) {कोशिश करें {db.execSQL ("तालिका बनाएं" + CONTACTS_TABLE_NAME + "(आईडी INTEGER प्राथमिक कुंजी, नाम टेक्स्ट, वेतन टेक्स्ट, डेटाटाइम डिफ़ॉल्ट current_timestamp)"); } पकड़ें (SQLiteException e) {कोशिश करें {नया IOException (e) फेंकें; } कैच (IOException e1) { e1.printStackTrace (); } } } @अपग्रेड पर सार्वजनिक शून्य को ओवरराइड करें (SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL ("यदि मौजूद है तो ड्रॉप टेबल" + CONTACTS_TABLE_NAME); ऑनक्रेट (डीबी); } पब्लिक बूलियन इंसर्ट (स्ट्रिंग एस, स्ट्रिंग एस1) {SQLiteDatabase db =this.getWritableDatabase (); ContentValues ​​contentValues ​​=new ContentValues(); contentValues.put ("नाम", एस); contentValues.put ("वेतन", s1); db.replace (CONTACTS_TABLE_NAME, शून्य, सामग्री मान); सच लौटना; } सार्वजनिक ArrayList getAllCotacts () {SQLiteDatabase db =this.getReadableDatabase (); ArrayList<स्ट्रिंग> array_list =नया ArrayList<स्ट्रिंग>(); कर्सर res =db.rawQuery ("+CONTACTS_TABLE_NAME+" से DISTINCT नाम चुनें, नाम से आदेश, वेतन ", शून्य); res.moveToFirst (); जबकि (res.isAfterLast () ==असत्य) { array_list.add (res.getString (res.getColumnIndex ("नाम"))); res.moveToNext (); } वापसी array_list; } सार्वजनिक बूलियन अद्यतन (स्ट्रिंग एस, स्ट्रिंग एस 1) {SQLiteDatabase डीबी =this.getWritableDatabase (); db.execSQL("अद्यतन"+CONTACTS_TABLE_NAME+" सेट नाम ="+"'"+s+"', "+"वेतन ="+"'"+s1+"'"); सच लौटना; } पब्लिक बूलियन डिलीट () {SQLiteDatabase db =this.getWritableDatabase (); db.execSQL ("+ CONTACTS_TABLE_NAME से हटाएं); सच लौटना; }}

आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -

Android sqlite में दोहराव को दूर करने के लिए DISTINCT का उपयोग कैसे करें?

उपरोक्त परिणाम में, यह दोहराए जाने वाले मान नहीं दिखा रहा है, अलग-अलग लागू करने से पहले यह नीचे दिखाए गए जैसा था

Android sqlite में दोहराव को दूर करने के लिए DISTINCT का उपयोग कैसे करें?

उपरोक्त परिणाम में, हम सभी रिकॉर्ड सहेजने के बाद कुछ मान सम्मिलित कर रहे हैं अब ताज़ा करें बटन पर क्लिक करें, यह नीचे दिखाए गए अनुसार एएससी आदेश के साथ नाम और वेतन मान दिखाएगा -

Android sqlite में दोहराव को दूर करने के लिए DISTINCT का उपयोग कैसे करें?


  1. एंड्रॉइड स्क्लाइट में टाइपऑफ () का उपयोग कैसे करें?

    एक उदाहरण में जाने से पहले, हमें पता होना चाहिए कि android में sqlite डेटाबेस क्या है। SQLite एक ओपन सोर्स SQL ​​डेटाबेस है जो किसी डिवाइस पर टेक्स्ट फ़ाइल में डेटा स्टोर करता है। Android अंतर्निहित SQLite डेटाबेस कार्यान्वयन के साथ आता है। SQLite सभी रिलेशनल डेटाबेस सुविधाओं का समर्थन करता है। इस ड

  1. Android sqlite में Total_changes () का उपयोग कैसे करें?

    उदाहरण में आने से पहले, हमें पता होना चाहिए कि एंड्रॉइड में एसक्लाइट डेटा बेस क्या है। SQLite एक ओपन सोर्स SQL ​​डेटाबेस है जो किसी डिवाइस पर टेक्स्ट फ़ाइल में डेटा स्टोर करता है। Android अंतर्निहित SQLite डेटाबेस कार्यान्वयन के साथ आता है। SQLite सभी रिलेशनल डेटाबेस सुविधाओं का समर्थन करता है। इस ड

  1. एंड्रॉइड स्क्लाइट में असंभावित () का उपयोग कैसे करें?

    उदाहरण में आने से पहले, हमें पता होना चाहिए कि android में sqlite डेटाबेस क्या है। SQLite एक ओपन सोर्स SQL ​​डेटाबेस है जो किसी डिवाइस पर टेक्स्ट फ़ाइल में डेटा स्टोर करता है। Android अंतर्निहित SQLite डेटाबेस कार्यान्वयन के साथ आता है। SQLite सभी रिलेशनल डेटाबेस सुविधाओं का समर्थन करता है। इस डेटाब