標籤:
轉載與: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中,然後插入到表中去。具體實現如下:
12345678 |
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的資料,具體代碼如下:
1234 |
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的資料,具體代碼如下:
1234 |
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 方法。具體代碼如下:
1 |
mSQLiteDatabase.close(); |
7.刪除指定表
這裡我們使用execSQL方法來實現,具體代碼如下:
1 |
mSQLiteDatabase.execSQL( "DROP TABLE table1" ); |
8.刪除資料庫
要刪除一個資料庫,直接使用deleteDatabase 方法即可,具體代碼如下:
1 |
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來查詢資料庫中的資料,具體代碼如下:
轉載與:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0714/1438.html 來自:泡在網上的日子。
123456789 |
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()); } } |
Sqlite資料庫初步的瞭解