Löschen Sie alle Datensätze aus der Tabelle in SQLite mit Android

Junaid Khan 12 Oktober 2023
  1. Verwenden Sie die execSQL()-Methode
  2. Löschen Sie alle Zeilen oder Datensätze aus der Tabelle in der SQLite-Datenbank mit Android
Löschen Sie alle Datensätze aus der Tabelle in SQLite mit Android

Im Android-Betriebssystem entwickeln wir Android-Anwendungen für verschiedene Zwecke. Wir verwenden die SQLite-Datenbank, um die Datensätze lokal auf Android-Telefonen zu speichern.

Die SQLite-Datenbank ist eine Open-Source-Datenbank im Android-Betriebssystem, die verwendet wird, um Daten lokal in Klartextform zu speichern. Wir können die CRUD-Operationen auf der SQLite-Datenbank ausführen, zum Beispiel den Datensatz erstellen, lesen, aktualisieren und löschen.

Dieser Artikel beschreibt, wie wir alle Datensätze aus der SQLite-Datenbank löschen können, indem wir annehmen, dass die Daten bereits darin gespeichert sind.

Verwenden Sie die execSQL()-Methode

Syntax der Methode execSQL():

db.execSQL(query)

Parameter:

query Dieser Parameter übernimmt die erforderliche SQL-Abfrage zum Löschen des Datensatzes.

Diese Methode gibt nichts zurück; Stattdessen führt es die SQL-Anweisung innerhalb des bereitgestellten Parameters aus. Es gibt den Fehler zurück, wenn die SQL-Anweisung falsch ist.

Löschen Sie alle Zeilen oder Datensätze aus der Tabelle in der SQLite-Datenbank mit Android

Im Android-Betriebssystem verwenden wir die SQLite-Datenbank, um Datensätze im Klartext zu speichern, zu löschen und zu aktualisieren. In Android entwickeln wir die UI (Benutzeroberfläche) mit XML (Extensible Markup Language), indem wir die Erweiterung filename.xml erstellen.

Um die UI-Funktionalität funktionsfähig zu machen, erstellen und verbinden wir die Java-Datei mit der XML-Datei.

Lassen Sie uns eine Android-XML-Datei mit dem folgenden Code erstellen.

XML-Datei (mainActivity.xml):

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/delete_all_rows"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Delete All Rows"/>

</androidx.constraintlayout.widget.ConstraintLayout>

Erklärung zur Datei mainActivity.xml:

In Android erstellen wir Layouts mit Widgets wie Linear Layout, Relative Layout, Constraint Layout usw. In diesem Beispiel verwenden wir das constraintLayout, um das Layout im XML zu erstellen.

Dieses Layout ermöglicht Ihnen die Größe und flexible Positionierung des Widgets in einer ViewGroup. Dieses constraintLayout ist ab Android-API-Version 9 (Gingerbread) verfügbar.

Innerhalb des constraintLayout werden zwei Eigenschaften, android:layout_width und android:layout_height, verwendet, um die Breite bzw. Höhe des Layouts festzulegen. Der Wert für beide Eigenschaften ist auf match_parent gesetzt, was zeigt, dass das Haupt-(Eltern-)Layout 100 Prozent der verfügbaren Breite und Höhe des Bildschirms einnimmt.

Später benötigen wir eine Schaltfläche, um die Löschfunktion auszuführen. Wir müssen den Button in das Hauptlayout (Elternlayout) importieren, das constraintLayout ist.

Für das Button-Widget verwenden wir verschiedene Eigenschaften: die Breite und Höhe des Layouts. Der Wert wrap_content für Breite und Höhe zeigt, dass das Button-Layout die Breite gleich der Länge des auf dem Button-Layout geschriebenen Textes annimmt.

Der Standardtext auf dem Button-Widget ist button, also können wir ihn mit unserem Text Delete All Rows ersetzen, indem wir die Eigenschaft android:text verwenden. Für jedes Widget innerhalb des constraintLayout müssen wir die eindeutige ID festlegen, indem wir die Eigenschaft android:id verwenden.

Diese ID unterscheidet bei der Kommunikation mit der Java-Quelldatei zwischen verschiedenen Widgets.

Erstellen Sie nun eine Java-Datei mit dem Namen mainActivity.java, um die Benutzeroberfläche (XML-Datei) mit der Funktionalität zu verbinden, indem Sie die Widgets verbinden.

Java-Datei (mainActivity.java):

package com.example.android;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
  private Button deleteButton;

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

  public void addListenerOnButton() {
    deleteButton = (Button) findViewById(R.id.delete_all_rows);

    deleteButton.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        SQLiteDatabase db = this.getWritableDatabase();
        // change the TABLE_NAME here to your SQLite table
        db.execSQL("delete from " + TABLE_NAME);
        db.close();
        Toast
            .makeText(getApplicationContext(),
                "All records are deleted in SQLite database successfully.", Toast.LENGTH_LONG)
            .show();
      }
    });
  }
}

Nach dem Drücken der Schaltfläche auf dem Bildschirm zeigt der Toast Folgendes an:

All records are deleted in SQLite database successfully.

Erklärung zur Datei mainActivity.java:

Der Paketname com.example.android zeigt die eindeutige Identität der Anwendung. Wir wählen den Paketnamen beim Erstellen der Anwendung zu Beginn aus.

Nach dem Erstellen wird der Paketname automatisch oben in jeder Java-Quelldatei angezeigt. Dann haben wir fünf verschiedene Importe, jeder für einen anderen Zweck.

Wann immer wir eine eingebaute Klasse in der Benutzerklasse verwenden, müssen wir sie importieren, bevor wir sie verwenden. Das Schlüsselwort extends zeigt die Vererbung der Klasse AppCompatActivity, die beim ersten Erstellen der Aktivität eine onCreate()-Methode ausgeben muss.

Innerhalb der onCreate()-Methode verbinden wir die Java-Quelldatei mit dem Layout mit der setContentView()-Methode. In ähnlicher Weise haben wir in Android integrierte Klassen für jedes Widget.

Um ein beliebiges Widget innerhalb der Java-Quelldatei zu verwenden, müssen wir das Widget am Anfang importieren. Damit das Button-Widget auf den Klick-Listener hören kann, müssen wir seine setOnClickListener()-Methode implementieren.

Innerhalb dieser Methode können wir beliebige Codezeilen schreiben, um die Funktionalität auszuführen, sobald das Button-Widget auf dem Bildschirm gedrückt wird.

Wie wir wissen, müssen wir alle Datensätze aus der SQLite-Datenbank löschen. Also müssen wir die Instanz der SQLite-Datenbank erstellen, indem wir den Klassennamen (Leerzeichen) Objektnamen SQLiteDatabase db verwenden.

Die SQLiteDatabase hat verschiedene Methoden, aber um die Datensätze in der Datenbank zu löschen, verwenden wir die execSQL()-Methode und übergeben die SQL-Abfrage darin. Wir müssen die Abfrage "delete from "+ TABLE_NAME" übergeben, um alle Datensätze zu löschen.

Der TABLE_NAME ist der Name Ihres Tabellennamens, der in der SQLite-Datenbank gespeichert ist. Sobald keine weiteren Abfragen mehr erforderlich sind, müssen wir die Datenbank mit der Methode db.close() schließen.

Wenn der Code und die Abfrage korrekt geschrieben sind, zeigt die Anwendung das Toast-Widget mit der Meldung Alle Datensätze wurden erfolgreich in der SQLite-Datenbank gelöscht. Andernfalls wird ein Fehler auf der Konsole angezeigt.

Junaid Khan avatar Junaid Khan avatar

Hi, I'm Junaid. I am a freelance software developer and a content writer. For the last 3 years, I have been working and coding with Python. Additionally, I have a huge interest in developing native and hybrid mobile applications.

LinkedIn

Verwandter Artikel - SQLite Table