SQLite實現增刪改查(筆記)

前言

這篇博文主要實現數據庫的增刪改查,所以使用log日誌方式輸出查看效果


開發環境

  • 開發工具:Android Studio 3.1.4
  • 模擬器:Genymotion
  • 數據庫:SQLite

首先創建一個類,繼承SQLiteOpenHelper

package cn.fv.sea.sqlitedemo4;

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

/**
 * FileDescription:數據庫幫助類
 * Author:Like The Sea
 * Creation time:2018/11/27 20:51
 * Change time:2018/11/27 20:51
 * Version number:v1.0
 */
public class DBOpenHelper extends SQLiteOpenHelper{

    public DBOpenHelper(Context context, String name) {
        super(context, name,null,1);
    }

    @Override // 首次創建數據庫的時候調用,可以包含創建數據庫和數據表的操作
    public void onCreate(SQLiteDatabase db) {
        // 建表
        db.execSQL("create table if not exists stu(_id integer primary key autoincrement, name text not null, sex text not null, age integer not null)");
        // 插入數據
        db.execSQL("insert into stu(name, sex, age) values ('張三', '男', 22)");
        db.execSQL("insert into stu(name, sex, age) values ('李四', '男', 33)");
        db.execSQL("insert into stu(name, sex, age) values ('王五', '男', 20)");

    }

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

    }
}

MainActivity:

package cn.fv.sea.sqlitedemo4;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    private DBOpenHelper mDBOpenHelper;
    private SQLiteDatabase db;

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

        mDBOpenHelper = new DBOpenHelper(this,"class.db");

        insert();
        delete();
        update();
        query();
    }


    /**
     * 添加數據
     */
    private void insert() {
        db = mDBOpenHelper.getWritableDatabase();// 數據庫可寫也可讀
        ContentValues values = new ContentValues();
        values.put("name", "大紅");
        values.put("sex", "女");
        values.put("age", 18);
        db.insert("stu", null, values);
        values.clear();
        db.close();
    }

    /**
     * 刪除id爲1的記錄
     */
    private void delete() {
        db = mDBOpenHelper.getWritableDatabase();// 數據庫可寫也可讀
        db.delete("stu",  "_id = 1", null);
        db.close();
    }

    /**
     * 更新數據, 把 性別爲女的改爲男
     */
    private void update() {
        db = mDBOpenHelper.getWritableDatabase();// 數據庫可寫也可讀
        ContentValues values = new ContentValues();
        values.put("sex", "男");
        db.update("stu",values,"sex = ?", new String[]{"女"});
        db.close();
    }

    /**
     * 查詢數據
     */
    private void query(){
        db = mDBOpenHelper.getReadableDatabase();
        Cursor c =  db.rawQuery("select * from stu",null);
        if (c != null){
            while(c.moveToNext()){
                Log.i("info", "_id: " + c.getInt(c.getColumnIndex("_id")));
                Log.i("info", "name: " + c.getString(c.getColumnIndex("name")));
                Log.i("info", "sex: " + c.getString(c.getColumnIndex("sex")));
                Log.i("info", "age: " + c.getString(c.getColumnIndex("age")));
            }
            // 釋放遊標
            c.close();
        }
        // 釋放數據庫對象
        db.close();
    }


}

Logcat裏的效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章