android sqlite 类使用,Android SQLite编程详解(不使用SQLiteOpenHelper类)
數據庫功能非常強大,使用起來也非常方便,SQLite數據庫的一般操作包括:創建數據庫、打開數據庫、創建表、向表中添加數據、從表中刪除數據、修改表中的數據、關閉數據庫、刪除指定表、刪除數據庫和查詢表中的某條數據。下面我們分別來學習這些基本操作。
1.創建和打開數據庫
在Android 中創建和打開一個數據庫都可以使用openOrCreateDatabase 方法來實現,因為它會自動去檢測是否存在這個數據庫,如果存在則打開,不過不存在則創建一個數據庫;創建成功則返回一個 SQLiteDatabase對象,否則拋出異常FileNotFoundException。下面我們來創建一個名為”Examples_06_05.db”的數據庫,并返回一個SQLiteDatabase對象 mSQLiteDatabase。
mSQLiteDatabase = this.openOrCreateDatabase("Example_06_05.db", MODE_PRIVATE, null);
2.創建表
一個數據庫中可以包含多個表,我們的每一條數據都保存在一個指定的表中,要創建表可以通過execSQL 方法來執行一條SQL語句。execSQL能夠執行大部分的SQL語句,下面我們來創建一個名為table1 且包含3個字段的表。 具體代碼如下:
String CREATE_TABLE = "CREATE TABLE table1 (_id INTEGER PRIMARY KEY, num INTEGER, data TEXT)";
mSQLiteDatabase.execSQL(CREATE_TABLE);
3.向表中添加一條數據
可以使用insert 方法來添加數據,但是 insert 方法要求把數據都打包到 ContentValues 中, ContentValues 其實就是一個Map, key值是字段名稱, Value值是字段的值。通過 ContentValues 的 put 方法就可以把數據放到ContentValues中,然后插入到表中去。具體實現如下:
ContentValues cv = new ContentValues();
cv.put(TABLE_NUM, 1);
cv.put(TABLE_DATA, "測試數據");
mSQLiteDatabase.insert(TABLE_NAME, null, cv);
//這樣同樣可以使用execSQL方法來執行一條“插入”的SQL語句,代碼如下:
String INSERT_DATA = "INSERT INTO table1 (_id, num, data) values (1, 1, '通過SQL語句插入')" ;
mSQLiteDatabase.execSQL(INSERT_DATA);
4.從表中刪除數據
要刪除數據可以使用delete 方法,下面我們刪除字段 “_id” 等于1的數據,具體代碼如下:
mSQLiteDatabase.delete("Examples_06_05.db", " where_id="+0, null);
通過 execSQL方法執行SQL語句刪除數據如下:
String DELETE_DATA = "DELETE FROM table1 WHERE _id=1";
mSQLiteDatabase.execSQL(DELETE_DATA);
5.修改表中的數據
如果添加了數據后發現數據有誤,這時需要修改這個數據,可以使用updata方法來更新一條數據。下面我們來修改 “num” 值為0的數據,具體代碼如下:
ContentValues cv = new ContentValues();
cv.put(TABLE_NUM, 3);
cv.put(TABLE_DATA, "修改后的數據");
mSQLiteDatabase.update("table1" cv, "num " + "=" + Integer.toString(0), null);
6.關閉數據庫
關閉數據庫很重要,也是大家經常容易忘記的。關閉的方法很簡單,直接使用SQLiteDatabase 的 close 方法。具體代碼如下:
mSQLiteDatabase.close();
7.刪除指定表
這里我們使用execSQL方法來實現,具體代碼如下:
mSQLiteDatabase.execSQL("DROP TABLE table1");
8.刪除數據庫
要刪除一個數據庫,直接使用deleteDatabase 方法即可,具體代碼如下:
this.deleteDatabase("Examples_06_05.db");
9.查詢表中的某條數據
在Android中查詢數據是通過Cursor類來實現的,當我們使用SQLiteDatabase.query()方法時,會得到一個Cursor對象,Cursor指向的就是每一條數據。它提供了很多有關查詢的方法,具體方法如下:
方法 說明
move 以當前的位置為參考,將Cursor移動到指定的位置,成功返回true, 失敗返回false
moveToPosition 將Cursor移動到指定的位置,成功返回true,失敗返回false
moveToNext 將Cursor向前移動一個位置,成功返回true,失敗返回false
moveToLast 將Cursor向后移動一個位置,成功返回true,失敗返回 false。
movetoFirst 將Cursor移動到第一行,成功返回true,失敗返回false
isBeforeFirst 返回Cursor是否指向第一項數據之前
isAfterLast 返回Cursor是否指向最后一項數據之后
isClosed 返回Cursor是否關閉
isFirst 返回Cursor是否指向第一項數據
isLast 返回Cursor是否指向最后一項數據
isNull 返回指定位置的值是否為null
getCount 返回總的數據項數
getInt 返回當前行中指定的索引數據
下面我們就是用Cursor來查詢數據庫中的數據,具體代碼如下:
Cursor cur = mSQLiteDatabase.rawQuery("SELECT * FROM table", null);
if( cur != null ){
if( cur.moveToFirst() ){
do{
int numColumn = cur.getColumnIndex("num");
int num = cur.getInt(numColumn);
}while( cur.moveToNext());
}
}
總結
以上是生活随笔為你收集整理的android sqlite 类使用,Android SQLite编程详解(不使用SQLiteOpenHelper类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android分享到指定应用,Andro
- 下一篇: 小米android11新特性,小米已推送