任何程序離不了數據,因此數據存儲是個非常重要的環節。
android中進行數據存儲有三種方式,一種是文件存儲,一種是SharedPreferences,最後一種就是SQLiteDatabase.下面來看下怎樣使用SQLiteDatabase.
1.首先要創建一個類,該類繼承自android.database.sqlite.SQLiteOpenHelper,由於這個是abstract class, 因此你需要實現該類的兩個方法,一個是onCreate(),一個是onUpgrade().注:兩個方法的參數都省略了。
示例如下:
- public class MySQLhelper extends SQLiteOpenHelper {
- public static final String tableName = "localContact";
- public static final String ID = "_id";
- public static final String nameRow = "name";
- public static final String numRow = "mobileNum";
- public MySQLhelper(Context context, String name, CursorFactory factory, int version) {
- super(context, name, factory, version);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("CREATE TABLE IF NOT EXISTS "+tableName+" ("/*+ID+" INTEGER PRIMARY KEY,"*/+nameRow+" VARCHAR,"+numRow+" VARCHAR)");
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // 刪除以前的舊錶,創建一張新的空表
- db.execSQL("DROP TABLE IF EXISTS " + tableName);
- onCreate(db);
- }
- }
2.在activity中,創建一個MySQLhelper的實例
- MySQLhelper sqlHelper = new MySQLhelper(this,DBname,null,1);
- SQLiteDatabase sql = sqlHelper.getWritableDatabase();
此時便獲得了剛剛創建的數據庫實例的寫入權限。
3.通過調用相應的方法如Insert(),delete()等,對數據庫進行插入和刪除的操作
4.示例:例如進行插入操作時,可以直接調用Insert()方法,代碼如下:
- ContentValues tcv = new ContentValues();
- tcv.put(MySQLhelper.nameRow, name);
- tcv.put(MySQLhelper.numRow, mobilePhone);
- sql.insert(MySQLhelper.tableName, null, tcv);
也可以通過直接執行SQL語句的方式來插入,
- sql.execSQL("INSERT INTO "+MySQLhelper.tableName+" ("+MySQLhelper.nameRow+","+MySQLhelper.numRow+") VALUES ('"+name+"','"+mobilePhone+"')");
兩種方式最後的效果都是一樣的,其他的操作都類似,不一一列舉。
原文鏈接:http://blog.csdn.net/roadog2006/article/details/5291427