Android で SQLite のテーブルからすべてのレコードを削除する
Android オペレーティング システムでは、さまざまな目的で Android アプリケーションを開発しています。 SQLite データベースを使用して、レコードを Android フォンにローカルに保存します。
SQLite データベースは、データをプレーン テキスト形式でローカルに保存するために使用される、Android オペレーティング システムのオープンソース データベースです。 レコードの作成、読み取り、更新、削除など、SQLite データベースで CRUD 操作を実行できます。
この記事では、データが既に内部に保存されていると仮定して、SQLite データベースからすべてのレコードを削除する方法について説明します。
execSQL()
メソッドを使用する
execSQL()
メソッドの構文:
db.execSQL(query)
パラメータ:
query |
このパラメーターは、レコードを削除するために必要な SQL クエリを受け取ります。 |
このメソッドは何も返しません。 代わりに、指定されたパラメーター内の SQL ステートメントを実行します。 SQL ステートメントが正しくない場合、エラーが返されます。
Android で SQLite データベースのテーブルからすべての行またはレコードを削除する
Android オペレーティング システムでは、SQLite データベースを使用してレコードをプレーン テキストで保存、削除、更新します。 Android では、filename.xml
拡張子を作成することにより、XML (Extensible Markup Language) を使用して UI (ユーザー インターフェイス) を開発します。
UI 機能を実行可能にするために、Java ファイルを作成して XML ファイルに接続します。
次のコードで Android XML ファイルを作成しましょう。
XML ファイル (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>
mainActivity.xml
ファイルの説明:
Android では、Linear Layout、Relative Layout、Constraint Layout などのウィジェットを使用してレイアウトを作成します。この例では、constraintLayout
を使用して XML でレイアウトを作成します。
このレイアウトにより、ウィジェットのサイズを変更し、ViewGroup
で柔軟に配置できます。 この constraintLayout
は、Android API バージョン 9 (Gingerbread) 以降で利用できます。
constraintLayout
内では、android:layout_width
と android:layout_height
の 2つのプロパティを使用して、レイアウトの幅と高さをそれぞれ設定します。 両方のプロパティの値は match_parent
に設定されています。これは、メイン (親) レイアウトが画面の使用可能な幅と高さの 100% を占めることを示しています。
後で、削除機能を実行するためのボタンが必要になります。 constraintLayout
であるメイン (親) レイアウト内に Button
をインポートする必要があります。
Button
ウィジェットでは、レイアウトの幅と高さという異なるプロパティを使用します。 幅と高さの値 wrap_content
は、Button
レイアウトが Button
レイアウトに書かれたテキストの長さと同じ幅を取ることを示しています。
Button
ウィジェットのデフォルトのテキストは button
であるため、プロパティ android:text
を使用してテキスト Delete All Rows
に置き換えることができます。 constraintLayout
内のウィジェットごとに、プロパティ android:id
を使用して一意の ID を設定する必要があります。
この ID は、Java ソース ファイルと通信するときに、さまざまなウィジェットを区別します。
ここで、mainActivity.java
という名前の Java ファイルを作成し、ウィジェットを接続して UI (xml ファイル) を機能に接続します。
Java ファイル (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();
}
});
}
}
画面上のボタンを押すと、Toast には次のように表示されます。
All records are deleted in SQLite database successfully.
mainActivity.java
ファイルの説明:
パッケージ名 com.example.android
は、アプリケーションの一意の ID を示しています。 最初にアプリケーションを作成するときにパッケージ名を選択します。
作成後、各 Java ソース ファイルの先頭にパッケージ名が自動的に表示されます。 次に、それぞれ異なる目的のために、5つの異なるインポートがあります。
ユーザー クラスで組み込みクラスを使用するときは常に、それを使用する前にインポートする必要があります。 extends
キーワードは、アクティビティが最初に作成されたときに出力する onCreate()
メソッドを持つ AppCompatActivity
クラスの継承を示します。
onCreate()
メソッド内で、setContentView()
メソッドを使用して、Java ソース ファイルをレイアウトに接続します。 同様に、Android では、ウィジェットごとに組み込みのクラスがあります。
Java ソース ファイル内のウィジェットを使用するには、最初にウィジェットをインポートする必要があります。 Button
ウィジェットがクリック リスナーをリッスンするには、setOnClickListener()
メソッドを実装する必要があります。
このメソッド内では、画面上の Button
ウィジェットが押されたときに機能を実行するコード行を記述できます。
ご存知のように、SQLite データベースからすべてのレコードを削除する必要があります。 そのため、クラス名 (スペース) オブジェクト名 SQLiteDatabase db
を使用して、SQLite データベースのインスタンスを作成する必要があります。
SQLiteDatabase
にはさまざまなメソッドがありますが、データベース内のレコードを削除するには、execSQL()
メソッドを使用し、その中に SQL クエリを渡します。 すべてのレコードを削除するには、"delete from "+ "TABLE_NAME"
クエリを渡す必要があります。
TABLE_NAME
は、SQLite データベース内に保存されているテーブル名の名前です。 さらにクエリを実行する必要がなくなったら、db.close()
メソッドを使用してデータベースを閉じる必要があります。
コードとクエリが正しく記述されている場合、アプリケーションは Toast
ウィジェットに All records are deleted in SQLite database successfully
というメッセージを表示します。 それ以外の場合は、コンソールにエラーが表示されます。
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