Android SQLite數據庫 SQLiteOpenHelper的操作使用


一.概況

SQLite是Android內置的一個很小的關系型數據庫,Google為Andriod的較大的數據處理提供了SQLite,他在數據存儲、管理、維護等各方面都相當出色,功能也非常的強大,SQLite具有獨立性、輕量級、隔離性、安全性、跨平台、支持多種語言的優勢,SQliteOpenHelper是一個抽象類,所以必須要實現以下的兩個方法以及一個構造方法 

1.構造方法: 

public ClassName(Context context, String name, CursorFactory factory, int version) 

參數1:上下文對象(MainActivity.this)、

參數2:數據庫的名稱、

參數3:創建Cursor的工廠類,參數為了可以自定義Cursor創建(ps:一般為null)、

參數4:數據庫的版本

2.兩個回調函數:

onCreate(SQLiteDatabase db)該方法是當沒有數據庫存在才會執行

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)該方法是數據庫存更新才會執行

3.實現代碼如下:

public class MyDatabaseOpenHelper extends SQLiteOpenHelper {

    private static final String db_name = "mydata.db"; // 數據庫名稱
    private static final int version = 1; // 數據庫版本
  
    public MyDatabaseOpenHelper(Context context) {
        super(context, db_name, null, version);
    }

    //該方法沒有數據庫存在才會執行
    public void onCreate(SQLiteDatabase db) {
     //沒有數據庫打印日記
        Log.i("Log","沒有數據庫,創建數據庫");
     //建表語句
        String sql_message = "create table t_message (id int primary key,userName varchar(50),lastMessage varchar(50),datetime  varchar(50))";
        //執行建表語句
        db.execSQL(sql_message);
    }

    //數據庫存更新才會執行
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      Log.i("updateLog","數據庫更新了!");
  }
}

二.SQLiteDatabase類

1.Android提供了一個名為SQLiteDatabase的類,它封裝了一些操作數據庫的API,SQLiteOpenHelper是SQLiteDatabase的一個幫助類,用來管理數據庫的創建和版本的更新,一般是建立一個類繼承它,並實現它的onCreate和onUpgrade方法

onCreate(SQLiteDatabase db)創建數據庫時調用

onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)版本更新時調用

getReadableDatabase()創建或打開一個只讀數據庫

getWritableDatabase()創建或打開一個讀寫數據庫

2.調用代碼如下:

public class MainActivity extends Activity {

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

        MyDatabaseOpenHelper helper = new MyDatabaseOpenHelper(MainActivity.this);
        helper.getWritableDatabase().close();   
    }
}

3.SQLiteDatabase相關方法

getCount()總記錄條數
isFirst()判斷是否第一條記錄
isLast()判斷是否最后一條記錄
moveToFirst()移動到第一條記錄
moveToLast()移動到最后一條記錄
move(int offset)移動[是指偏移量而不是指移到指定位置]
moveToNext()移動到嚇一條記錄
moveToPrevious()移動到上一條記錄
getColumnIndex(String columnName)獲得指定列索引的int類型值

三.測試SQL語句方法

運行以上代碼后你會發現在data/data/database 目錄下有個剛剛生成的mydata.db文件這就是我們的數據庫文件

在我們的SDK目錄下的platform-tools文件夾有個sqlite3.exe,打開我們的dos命令台運行它,輸入sqlite3 數據庫文件的絕對路徑便可以打開該數據庫進行增刪查改的操作

(ps:沒有SDK的,這里我提供一下百度雲鏈接:http://pan.baidu.com/s/1o8m6hNc 密碼:zom1)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM