馬自輝
【摘 要】Android提供了創建和使用SQLite數據庫的API。SQLiteDatabase代表一個數據庫對象,提供了操作數據庫的一些方法。在Android的SDK目錄下有sqlite3工具,我們可以利用它創建數據庫、創建表和執行一些SQL語句。
【關鍵詞】Andriod;SQLite;數據庫
1 打開或者創建數據庫
在Android中使用SQLiteDatabase的靜態方法。openOrCreateDatabase(String path,SQLiteDatabae.Cursor Factory factory)打開或者創建一個數據庫。它會自動去檢測是否存在這個數據庫,如果存在則打開,不存在則創建一個數據庫;創建成功則返回一個SQLiteDatabase對象,否則拋出異常FileNotFoundException。
2 創建表
創建一張表的步驟很簡單:編寫創建表的SQL語句,調用SQLiteDatabase的execSQL()方法來執行SQL語句。下面的代碼創建了一張用戶表,屬性列為:id(主鍵并且自動增加)、sname(學生姓名)、snumber(學號)。
private void createTable(SQLiteDatabase db){//創建表SQL語句String stu_table="create table usertable(_id integer primary key autoincrement,sname text,snumber text)";//執行SQL語句db.execSQL(stu_table);}
3 插入數據
插入數據有兩種方法:
1)SQLiteDatabase的insert(Stringtable,StringnullColumnHack,Content
Values values)方法,
參數1 表名稱,
參數2 空列的默認值
參數3 ContentValues類型的一個封裝了列名稱和列值的Map;
2)編寫插入數據的SQL語句,直接調用SQLiteDatabase的execSQL()方法來執行。代碼:
private void insert(SQLiteDatabase db){//實例化常量值
ContentValues cValue=new ContentValues();//添加用戶cValue.put("sname","xiaoming");//添加密碼
cValue.put("snumber","01005");//調用insert()方法插入數據db.insert("stu_table",null,cValue);}
4 刪除數據
刪除數據也有兩種方法:
1)調用SQLiteDatabase的delete(Stringtable,StringwhereClause,String[]whereArgs)方法
參數1 表名稱
參數2 刪除條件
參數3 刪除條件值數組
2)編寫刪除SQL語句,調用SQLiteDatabase的execSQL()方法來執行刪除。
第一種方法的代碼:
private void delete(SQLiteDatabase db){//刪除條件String
whereClause="id=";//刪除條件參數String[]whereArgs={String
valueOf(2)};//執行刪除db.delete("stu_table",whereClause,whereArgs);}
第二種方法的代碼:
private void delete(SQLiteDatabase db){//刪除SQL語句
String sql="delete from stu_table where_id=6";//執行SQL語句db.execSQL(sql);}
5 修改數據
修改數據有兩種方法:
1)調用SQLiteDatabase的update(Stringtable,ContentValuesvalues,String whereClause,String[]whereArgs)方法
參數1 表名稱
參數2 跟行列ContentValues類型的鍵值對Key-Value
參數3 更新條件(where字句)
參數4 更新條件數組
2)編寫更新的SQL語句,調用SQLiteDatabase的execSQL執行更新。
第一種方法的代碼:
private void update(SQLiteDatabase db){//實例化內容值ContentValues values=new ContentValues();//在values中添加內容values.put("snumber","101003");//修改條件String whereClause="id=";//修改添加參數String[]whereArgs={String.valuesOf(1)};//修改db.update("usertable",values,whereClause,whereArgs);}
第二種方法的代碼:
private void update(SQLiteDatabase db){//修改SQL語句String sql="update stu_table set snumber=654321 where id=1";//執行SQLdb.execSQL(sql);}
6 查詢數據
在Android中查詢數據是通過Cursor類來實現的,當我們使用SQLiteDatabase.query()方法時,會得到一個Cursor對象,Cursor指向的就是每一條數據。它提供了很多有關查詢的方法,具體方法如下:
public Cursorquery(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit);
各個參數的意義說明:
參數table:表名稱
參數columns:列名稱數組
參數selection:條件字句,相當于where
參數selectionArgs:條件字句,參數數組
參數groupBy:分組列
參數having:分組條件
參數orderBy:排序列
參數limit:分頁查詢限制
參數Cursor:返回值,相當于結果集ResultSet
Cursor是一個游標接口,提供了遍歷查詢結果的方法,如移動指針方法move(),獲得列值方法getString()等。
7 刪除指定表
編寫插入數據的SQL語句,直接調用SQLiteDatabase的execSQL()方法來執行private void drop(SQLiteDatabase db){//刪除表的SQL語句String sql="DROP TABLE stu_table";//執行SQL db.execSQL(sql);}
[責任編輯:田吉捷]