android輕量數據庫SQLite的使用

SQLite是一款輕型的數據庫,它的設計目標是嵌入 式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持 Windows/Linux/Unix等等主流的操作系統
SQLiteDatabase的常用方法
方法名稱
方法表示含義
openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)
打開或創建數據庫
insert(String table,String nullColumnHack,ContentValues values)
插入一條記錄
delete(String table,String whereClause,String[] whereArgs)
刪除一條記錄
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)
查詢一條記錄
update(String table,ContentValues values,String whereClause,String[] whereArgs)
修改記錄
execSQL(String sql)
執行一條SQL語句
close()
關閉數據庫

SQLite所定義的數據類型:
NULL 空值
INTEGER 有符號整數
REAL 浮點數
TEXT 文本字符串
BLOB 數據塊

創建數據庫

Android 不自動提供數據庫。在 Android 應用程序中使用 SQLite,必須自己創建數據庫,然後創建表、索引,填充數據。Android 提供了 SQLiteOpenHelper 幫助你創建一個數據庫,只要繼承 SQLiteOpenHelper 類,就可以創建數據庫。繼承了SQLiteOpenHelper的子類,必須實現三個方法:

1、構造函數,調用父類 SQLiteOpenHelper 的構造函數。這個方法需要四個參數:上下文環境(例如,一個 Activity),數據庫名字,一個可選的遊標工廠(通常是 Null),一個代表你正在使用的數據庫模型版本的整數,與onUpgrage()函數相關。

2、onCreate()方法,它需要一個 SQLiteDatabase 對象作爲參數,根據需要對這個對象填充表和初始化數據。

3、onUpgrage() 方法,它需要三個參數,一個 SQLiteDatabase 對象,一箇舊的版本號和一個新的版本號,這樣可以清楚如何把一個數據庫從舊的模型轉變到新的模型。

代碼如下:

public class sqlite extends SQLiteOpenHelper {
private SQLiteDatabase db;
//一般可把context後面三個參數省略不寫
public sqlite(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, “db”, null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
//執行數據庫語句,創建表,有name 類型爲TEXT,數據爲空
db.execSQL(“CREATE TABLE user(“+”name TEXT DEFAULT NONE,”+”sex TEXT DEFAULT NONE)”);
} @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
插入數據java代碼
//獲取可寫數據庫對象
SQLiteDatabase dbwriter=sql.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(“name”,”金寶”);
cv.put(“sex”,”男”);
//插入數據
dbwriter.insert(“user”,null,cv);
dbwriter.close();
讀取數據java代碼
/*第一個參數表示查詢的表,第二個參數表示查詢的數據,null爲全部數據,若只要查詢
一部分數據可寫:new String[]{“name”}表示只查詢name這一列。第三個參數是查詢的條件,
name=”金寶”表示只查詢name爲金寶的數據,若查詢全部name 則如下
*/
Cursor cursor= dbread.query(“user”, null, null, null, null, null, null);
while (cursor.moveToNext()){
String name= cursor.getString(cursor.getColumnIndex(“name”));
String sex=cursor.getString(cursor.getColumnIndex(“sex”));
}

發佈了26 篇原創文章 · 獲贊 9 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章