Androidアプリ開発メモ

プログラミング初心者がAndroidのアプリを作るよ!主に自分用の忘備録です

SQLiteのデータの追加・更新・削除・全削除・表示

f:id:olee46:20170531165628j:plain

機能
・レコードの追加
・レコードの更新
・レコードの削除
・レコードの全削除
・レコードの表示

activity_main.xml
f:id:olee46:20170531165626j:plain


MainActivity.java

package com.example.orisa.mydb5;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    EditText addName;
    EditText addAge;
    Button addBtn;
    Button updateBtn;
    Button deleteBtn;
    Button deleteAllBtn;
    Button showBtn;

    TextView disp;

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

        //部品の取得
        addName = (EditText)findViewById(R.id.addName);
        addAge = (EditText)findViewById(R.id.addAge);
        addBtn = (Button)findViewById(R.id.addBtn);
        updateBtn = (Button)findViewById(R.id.updateBtn);
        deleteBtn = (Button)findViewById(R.id.deleteBtn);
        deleteAllBtn = (Button)findViewById(R.id.deleteAllBtn);
        showBtn = (Button)findViewById(R.id.showBtn);
        disp = (TextView)findViewById(R.id.disp);

        //データベースの生成
        MyDbHelper hlp = new MyDbHelper(this);
        final SQLiteDatabase db = hlp.getReadableDatabase(); //finalをつけるのに注意

        //データを追加
        addBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ContentValues val = new ContentValues();
                val.put("name", addName.getText().toString());
                val.put("age", addAge.getText().toString());
                db.insert("person", null, val);
            }
        });

        //データの更新
        updateBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //nameとageを取得
                String name = addName.getText().toString();
                String age = addAge.getText().toString();

                //ContentValuesに値を入れる
                ContentValues val = new ContentValues();
                val.put("age", age);

                //データベースを更新
                db.update("person", val, "name=?", new String[]{name});
            }
        });

        //データの削除
        deleteBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //名前を取得
                String name = addName.getText().toString();

                //ContentValuesに値を入れる
                ContentValues val = new ContentValues();
                val.put("name", name);

                //データベースを更新
                db.delete("person", "name=?", new String[]{name});
            }
        });

        //データの全削除
        deleteAllBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                db.delete("person", null, null);
            }
        });

        //データを表示
        showBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //TextViewをリセットする
                disp.setText(null);
                Cursor c = db.query("person", new String[]{"name", "age"}, null, null, null, null, null);
                boolean mov = c.moveToFirst();
                while(mov){
                    disp.append(c.getString(0) + ": " + c.getInt(1) + "\n");
                    mov = c.moveToNext();
                }
                c.close();
            }
        });
    }
}

MyDbHelper.java

package com.example.orisa.mydb5;

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

/**
 * Created by orisa on 2017/05/31.
 */

public class MyDbHelper extends SQLiteOpenHelper {
    public MyDbHelper(Context context){
        super(context, null, null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE person(name TEXT NOT NULL, age TEXT);");

        //insert data
        db.execSQL("INSERT INTO person(name, age) values('john', 18);");
        db.execSQL("INSERT INTO person(name, age) values('eric', 20);");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}


参考サイト
SQLiteデータベースの基礎を理解できるAndroidサンプルアプリ | TECH Projin