SQLite データベースと Android 開発におけるその基本的な使用法

SQLite データベースと Android 開発におけるその基本的な使用法

SQLiteデータベースの特徴

軽量なデータベースなのでサーバーを構築する必要がありません。

SQLite環境の設定

公式 Web サイトからダウンロードする方法は次のとおりです。Android Studio プロジェクトをお持ちの場合は、この記事「Android での SQLite のアプリケーション」にジャンプできます。

1. sqlite 公式 Web サイト (https://www.sqlite.org/index.html) にアクセスし、「Download」と入力します。
ここに画像の説明を挿入

2. Windows バージョンで sqlite-tools を選択し、圧縮パッケージをダウンロードします
ここに画像の説明を挿入

3. ファイルを解凍します。
ここに画像の説明を挿入

4. システム環境設定インターフェイスに入り(設定で検索できます)、環境変数を編集します
ここに画像の説明を挿入

5. sqlite3.exe のパスをシステム変数のパスに追加します (C:\Program Files (x86)\sqlite-tools-win32-x86-3360000 など)。
ここに画像の説明を挿入

6. コマンドラインを入力し、sqlite3 ステートメントを入力して、環境が正常にインストールされたかどうかをテストします。
ここに画像の説明を挿入

SQLiteの共通基本操作

データベースを見る

.database

データベースを開く

.open 数据库文件名(后缀名为.db)

ここに画像の説明を挿入

このデータベースでの作成操作を表示します

.schema 

ここに画像の説明を挿入

データシートを見る

.table

データテーブルの作成(SQL言語と同じ)

create table 表名(字段1 数据类型, 字段2 数据类型, ...);

ここに画像の説明を挿入

SQL言語

ここでは、insert()、select、update()などのSQL言語を使用できます。
ここに画像の説明を挿入

Android での SQLite のアプリケーション

sqlite3.exeを見つけます

1. Android Studio を開き、右上で SDK Manager を見つけ、SDK パスを開いてコピーします。
ここに画像の説明を挿入

2. Sdk/platform-tools ディレクトリで、SQLite データベースの実行ファイル sqlite3.exe を見つけて、上記の手順に従って環境変数を構成します。
ここに画像の説明を挿入

データベースにアクセスする

1. SQLiteOpenHelper から継承した新しいパブリック クラスを作成します。ビルド後、コンストラクターと 2 つのメソッド onCreate() および onUpgrade() を書き直す必要があります。

public class MyOpenHelper extends SQLiteOpenHelper {
    
    
    //重写构造函数
    public MyOpenHelper(Context context){
    
    
        super(context, "taskDB.db", null,1);
        //taskDB.db为数据库名,若不存在则创建
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    
    
        String create_sql = 
            "create table task(id INTEGER PRIMARY KEY AUTOINCREMENT, content varchar(50), status int);";
        db.execSQL(create_sql);  //执行SQL语句
    }

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

    }
}

データベースを変更または挿入する

//新建MyOpenHelper实例,注意自己重新定义的构造函数的参数
MyOpenHelper openHelper = new MyOpenHelper(this);
//通过getWritableDatabase()创建用于写数据库的实例
SQLiteDatabase writableDatabase = openHelper.getWritableDatabase();

//新建ContentValues类,用来存放插入数据库的数据
ContentValues task_item = new ContentValues();
//ContentValues.put(key, value)  key需要与数据表的字段名对应
task_item.put("content", ((EditText) findViewById(R.id.Content)).getText().toString());
task_item.put("status",0);

//执行插入语句 writableDatabase.insert(数据表名, nullColumnHack, ContentValues)
//nullColumnHack通常为null
writableDatabase.insert("task", null, task_item);
//关闭数据库,减少内存资源浪费
writableDatabase.close();

データベースを読み取る

public List<TaskItem> task_list = new ArrayList<>();

public void ReadDataBase(){
    
    
    MyOpenHelper openHelper = new MyOpenHelper(this);
    //创建SQLiteDatabase实例并获取ReadableDatabase
    SQLiteDatabase read_db = openHelper.getReadableDatabase();
    //使用ReadableDatabase中的游标
    Cursor cursor = read_db.query("task",new String[]{
    
    "id", "content", "status"},null,null,null,null,null);
    //使用while语句遍历游标Cursor,将从数据库获取的数据放进list列表中
    while(cursor.moveToNext()){
    
    
        TaskItem task_item = new TaskItem();
        //游标get方法传入的字段索引值是从0开始的
        task_item.setId(cursor.getInt(0));
        task_item.setContent(cursor.getString(1));
        task_item.setStatus(cursor.getInt(2));
        task_list.add(task_item);
    }

    //关闭游标和ReadableDatabase,减少内存资源浪费
    cursor.close();     
    read_db.close();   
}

class TaskItem {
    
    
    private int id;
    private String content;
    private int status;

    public int getId() {
    
    
        return id;
    }
    public String getContent() {
    
    
        return content;
    }
    public int getStatus() {
    
    
        return status;
    }
    public void setId(int id) {
    
    
        this.id = id;
    }
    public void setContent(String content) {
    
    
        this.content = content;
    }
    public void setStatus(int status) {
    
    
        this.status = status;
    }
}

おすすめ

転載: blog.csdn.net/Dae_Lzh/article/details/121139948