AndroidStudioのSqliteでデータベースを作成する

# Android StudioでSQLiteデータベースを作成する方法（統合版）

この記事では、Android Studioを使用してSQLiteデータベースを作成し、基本的なデータの追加と取得を行う方法を解説します。  
以下は、MyDatabaseHelper.java、MainActivity.java、MainActyvity.xlm の各コード例を、1つのコードブロック内に統合したものです。  
※ XML部分は、Javaのマルチラインコメント内に記述しています。

```java
/* ===============================
   Android Studio SQLite 統合コード例
   =============================== */

/* -------------------------------
   MyDatabaseHelper.java
   ------------------------------- */
// このクラスは、SQLiteOpenHelperを継承して、SQLiteデータベースの作成および管理を行います。

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.Cursor;
import android.content.ContentValues;

public class MyDatabaseHelper extends SQLiteOpenHelper {

    // 定数定義：データベース名、バージョン、テーブル名、カラム名
    private static final String DATABASE_NAME = "Mydatabase.db";
    private static final int DATABASE_VERSION = 1;
    private static final String TABLE_NAME = "mytable";
    private static final String COLUMN_ID = "id";
    private static final String COLUMN_NAME = "name";
    private static final String COLUMN_AGE = "age";

    // コンストラクタ：SQLiteOpenHelperのコンストラクタに必要なパラメータを渡す
    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // 初回作成時に呼び出される。テーブルを生成する
    @Override
    public void onCreate(SQLiteDatabase db) {
        // テーブル作成のSQL文を構築
        String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +
                              COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                              COLUMN_NAME + " TEXT, " +
                              COLUMN_AGE + " INTEGER)";
        // SQL文を実行してテーブルを作成
        db.execSQL(CREATE_TABLE);
    }

    // データベースのバージョンアップ時に呼び出される。既存テーブルを再生成する
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 既存テーブルを削除
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        // テーブルを再作成
        onCreate(db);
    }

    // 新規レコードを追加するメソッド
    public void addRecord(String name, int age) {
        // 書き込み可能なデータベースオブジェクトを取得
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        // カラムに値を設定
        values.put(COLUMN_NAME, name);
        values.put(COLUMN_AGE, age);
        // テーブルにレコードを挿入
        db.insert(TABLE_NAME, null, values);
        // 操作後はデータベースを閉じる
        db.close();
    }

    // 全レコードを取得するメソッド。結果はCursorで返す
    public Cursor getAllRecords() {
        // 読み込み可能なデータベースオブジェクトを取得
        SQLiteDatabase db = this.getReadableDatabase();
        // SELECT文を実行してCursorを返す
        return db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
    }
}

/* -------------------------------
   MainActivity.java
   ------------------------------- */
// このクラスは、アプリ起動時にデータベース操作を行い、取得したデータを画面に表示します。

import android.database.Cursor;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    // データベースヘルパーのインスタンス
    MyDatabaseHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // activity_main.xml をレイアウトとして設定
        setContentView(R.layout.activity_main);

        // MyDatabaseHelperのインスタンスを生成
        dbHelper = new MyDatabaseHelper(this);

        // サンプルデータの追加
        dbHelper.addRecord("John Doe", 30);
        dbHelper.addRecord("Jane Smith", 25);

        // データベースから全レコードを取得する
        Cursor cursor = dbHelper.getAllRecords();
        if (cursor.moveToFirst()) {
            // 取得したレコードをTextViewに表示するための文字列を構築
            StringBuilder sb = new StringBuilder();
            do {
                // カラム名で各フィールドの値を取得
                int id = cursor.getInt(cursor.getColumnIndex("id"));
                String name = cursor.getString(cursor.getColumnIndex("name"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                // 文字列に整形して追加
                sb.append("ID: ").append(id)
                  .append(", Name: ").append(name)
                  .append(", Age: ").append(age)
                  .append("\n");
            } while (cursor.moveToNext());
            // TextViewに構築した文字列をセットして表示
            TextView textView = findViewById(R.id.textView);
            textView.setText(sb.toString());
        }
    }
}

/* -------------------------------
   MainActyvity.xlm (XMLレイアウト)
   ------------------------------- */
/*
<?xml version="1.0" encoding="utf-8"?>
<!-- ルートレイアウトとしてRelativeLayoutを使用 -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <!-- 中央に配置されるTextView：データベースから取得した情報を表示 -->
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Hello World!"
        android:textSize="18sp"/>
</RelativeLayout>
*/