1. 程式人生 > >Android SQLiteOpenHelper Sqlite資料庫的建立與開啟

Android SQLiteOpenHelper Sqlite資料庫的建立與開啟

Android Sqlite資料庫是一個怎樣的資料庫?
答:是一種嵌入式小型裝置,移動裝置,的資料庫,應用在穿戴裝置(例如:智慧手錶,計算手環 等等),移動裝置(例如:Android系統型別的手機 等等),屬於嵌入式關係型資料庫。

在Android開發過程中,只需呼叫Android所提供的Sqlite API介面,底層會呼叫Sqlite.c 程式去生成資料庫,建立表字段 等等;

雖然在Android Sqlite3 支援了 null,integer,real,char(n),varchar(n),decimal(p,s),這些型別,但是 請注意:除了ID唯一主鍵是integer型別,其他所有型別,最後都會變成TEXT型別。

在Android API中提供了,SQLiteOpenHelper對資料庫建立,管理操作等;
這裡寫圖片描述

建立表的語句:create table student_table(_id integer primary key autoincrement, name text);

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

public
class MySQLiteOpenHelper extends SQLiteOpenHelper { /** * 資料庫的名稱 */ private static final String DATABASE_NAME = "PersonDB.db"; /** * 資料庫的版本號,以後要升級資料庫,修改版本號為 +1 即可 */ private static final int DATABASE_VERSION = 1; private static MySQLiteOpenHelper instance; /** * 單例模式 * @param
context 傳入上下文 * @return 返回MySQLiteOpenHelper物件 */
public static MySQLiteOpenHelper getInstance(Context context) { if (null == instance) { synchronized (MySQLiteOpenHelper.class) { if (null == instance) { instance = new MySQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION); } } } return instance; } // 構造方法不對外暴露 private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } // 構造方法不對外暴露 private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { super(context, name, factory, version, errorHandler); } // 初始化操作,會執行onCreate @Override public void onCreate(SQLiteDatabase db) { // 建立一個 student_table表 db.execSQL("create table student_table(_id integer primary key autoincrement, name text);"); } // 用於升級資料庫,當Version 變動了,就會呼叫onUpgrade方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }

這裡寫圖片描述

sqLiteOpenHelper.getWritableDatabase();,沒有資料庫就建立資料庫,有資料庫就開啟資料庫。

 @Override
    public void onClick(View v) {
        MySQLiteOpenHelper sqLiteOpenHelper = MySQLiteOpenHelper.getInstance(MainActivity.this);
        sqLiteOpenHelper.getWritableDatabase();
    }

生成完成:
這裡寫圖片描述

看看錶結構:
這裡寫圖片描述