Android中sqlite數據庫的簡單使用

摘要:每個應用程序都要使用數據,Android應用程序也不例外,Android使用開源的、與操作系統無關的SQL數據庫--SQLite,本文介紹的就是如何爲你的Android應用程序創建和操作SQLite數據庫。

數據庫支持每個應用程序無論大小的生命線,除非你的應用程序只處理簡單的數據,那麼就需要一個數據庫系統存儲你的結構化數據,Android使用SQLite數據庫,它是一個開源的、支持多操作系統的SQL數據庫,在許多領域廣泛使用,如Mozilla FireFox就是使用SQLite來存儲配置數據的,iPhone也是使用SQLite來存儲數據的。
在Android中,你爲某個應用程序創建的數據庫,只有它可以訪問,其它應用程序是不能訪問的,數據庫位於Android設備/data/data//databases文件夾中,在這篇文章中,你將會學習到如何在Android中創建和使用數據庫。

Android如何使用SQLiteOpenHelper
•1.SQLiteOpenHelper
•  SQliteOpenHelper是一個抽象類,來管理數據庫的創建和版本的管理。要使用它必須實現它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法
•  onCreate:當數據庫第一次被建立的時候被執行,例如創建表,初始化數據等。
•  onUpgrade:當數據庫需要被更新的時候執行,例如刪除久表,創建新表。
2.實現代碼

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class DBHelper extends SQLiteOpenHelper 
{    //數據庫版本    private static final int VERSION = 1;    
    //新建一個表    String sql = "create table if not exists TestUsers"+    "(id int primary key,name varchar,sex varchar)";        
    public DBHelper(Context context, String name, CursorFactory factory, int version) {        super(context, name, factory, version);    }
    public DBHelper(Context context,String name,int version){        this(context,name,null,version);    }       
    public DBHelper(Context context,String name){        this(context,name,VERSION);    }       
    @Override   
    public void onCreate(SQLiteDatabase db) {        db.execSQL(sql);    }  
    @Override    
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {            }    
} 


3.SQLite的使用

•Android提供了一個名爲SQLiteDatabase的類,它封裝了一些操作數據庫的API。使用它能實現基本的CRUD操作,通過getWritableDatabase()和getReadableDatabase()可以獲取數據庫實例。

4.實現代碼

   /**
     * 新建一個數據庫
     * @param dbName
     * @return
     */
    public SQLiteDatabase CreateDatabase(String dbName){
        dbHelper = new DBHelper(this, dbName);
        return dbHelper.getWritableDatabase();
    }
 
/**
     * 打開數據庫
     */
    public void OpenDb(){
        dbHelper = new DBHelper(this, "TestDb01");
        db = dbHelper.getWritableDatabase();
    }
    
    /**
     * 關閉數據庫
     */
    public void CloseDb(){
        dbHelper.close();
    } 

/**
     * 新建一個表
     * @param db
     */
    public void CreateTable(){
        db = dbHelper.getWritableDatabase();
        String sql = "create table if not exists TestUsers"+
                        "(id int primary key,name varchar,sex varchar)";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "create table failed");
        }
    } 

/**
     * 插入數據
     */
    public void InsertTb(){
        db = dbHelper.getWritableDatabase();
        String sql = "insert into TestUsers (id,name,sex) values (2,'hongguang','men')";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "insert failed");
        }
    } 

/**
     * 更新數據
     */
    public void UpdateTb() {
        db = dbHelper.getWritableDatabase();
        String sql = "Update TestUsers set name = 'anhong',sex = 'men' where id = 2";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "update failed");
        }
    } 

 /**
     * 刪除數據
     */
    public void DeleteTb(){
        db = dbHelper.getWritableDatabase();
        String sql = "delete from TestUsers where id = 2";
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            Log.i("err", "delete failed");
        }
    } 


5.一些SQLite操作命令
•  5.1 adb shell 進入命令模式
•  5.2 cd 文件名 進入文件
•  5.3 ls或ls -l 查看目錄下的文件
•  5.4 sqlite3 數據庫名 進入數據庫
•  5.5 .schema 查看數據庫下的信息
•  5.6 ctrl+d 退出sqlite模式



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