天天看點

Sqlite資料庫初步的了解

轉載與:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0714/1438.html    來自:泡在網上的日子。

和其他資料庫一樣,SQLite資料庫的一般操作包括:建立資料庫、打開資料庫、建立表、向表中添加資料、從表中删除資料、修改表中的資料、關閉資料庫、删除指定表、删除資料庫和查詢表中的某條資料。下面我們分别來學習這些基本操作。

 1.建立和打開資料庫

 在Android 中建立和打開一個資料庫都可以使用openOrCreateDatabase 方法來實作,因為它會自動去檢測是否存在這個資料庫,如果存在則打開,不過不存在則建立一個資料庫;建立成功則傳回一個 SQLiteDatabase對象,否則抛出異常FileNotFoundException。下面我們來建立一個名為"Examples_06_05.db"的資料庫,并傳回一個SQLiteDatabase對象 mSQLiteDatabase。

1

mSQLiteDatabase =

this

.openOrCreateDatabase(

"Example_06_05.db"

, MODE_PRIVATE,

null

);

 3.向表中添加一條資料

可以使用insert 方法來添加資料,但是 insert 方法要求把資料都打包到 ContentValues 中, ContentValues 其實就是一個Map, key值是字段名稱, Value值是字段的值。通過 ContentValues 的 put 方法就可以把資料放到ContentValues中,然後插入到表中去。具體實作如下:

2

3

4

5

6

7

8

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來查詢資料庫中的資料,具體代碼如下:

9

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());

}

}