Android 如何對sqlite數據庫進行增刪改[insert、update和delete] 操作

jopen 12年前發布 | 205K 次閱讀 Android Android開發 移動開發

在android開發中,我們常常用sqlite來存儲用戶信息,如何進行sqlite常規操作呢,請參閱下面的示例代碼:

package com.db.imgfornote;

import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log;

public class DBHelper extends SQLiteOpenHelper { final private static String mDbName="imgfornote"; final private static int mDbVersion=1; private static DBHelper mInstance=null; private final static String mTUserPhoto="UserPhoto"; final private static String mCreateSqlForNoteClass="create table if not exists NoteClass(classId integer primary key asc autoincrement,className NVARCHAR(100),rowTime timestamp default (datetime('now', 'localtime')))"; final private static String mCreateSqlForUserPhoto="create table if not exists UserPhoto(photoId integer primary key asc autoincrement,photoName VARCHAR(200),userPt VARCHAR(200),title VARCHAR(255),classId integer,content NVARCHAR(250),tag NVARCHAR(200),remark text,status integer default 0,rowTime timestamp default (datetime('now', 'localtime')))"; final private static String[] mInsertSqlForNoteClass={"insert into NoteClass(className) values('默認分類[私有]');","insert into NoteClass(className) values('讀書筆記[私有]');","insert into NoteClass(className) values('電子資料[公開]');"}; private DBHelper(Context context, CursorFactory factory) { super(context, mDbName, factory, mDbVersion);
}

public static DBHelper GetInstance(Context context, SQLiteDatabase.CursorFactory factory)
{
    if(mInstance==null){
        mInstance = new DBHelper(context,factory);  
    }
    return mInstance;
}

@Override
public void onCreate(SQLiteDatabase db) {
    // 創建表
    db.execSQL(mCreateSqlForNoteClass); 
    db.execSQL(mCreateSqlForUserPhoto);
    //初始化數據
    for(int i=0;i<mInsertSqlForNoteClass.length;i++)
        db.execSQL(mInsertSqlForNoteClass[i]);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

}

private Cursor ExecSQLForCursor(String sql, String[] selectionArgs){
    SQLiteDatabase db =getWritableDatabase();
    Log.i("ExecSQLForCursor",sql);
    return db.rawQuery(sql, selectionArgs);
}
private void ExecSQL(String sql){
    try{
        SQLiteDatabase db =getWritableDatabase();
        ExecSQL(sql,db);
    }catch(Exception e){
        Log.e("ExecSQL Exception",e.getMessage());
                e.printStackTrace();
    }
}
private void ExecSQL(String sql,SQLiteDatabase db ){
try{
        db.execSQL(sql);    
        Log.i("ExecSQL",sql);
    }catch(Exception e){
        Log.e("ExecSQL Exception",e.getMessage());
            e.printStackTrace();
    }
}
//添加照片信息
public long InsertUserPhoto(String photoName,String title){
    SQLiteDatabase db =getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("photoName", photoName);
    cv.put("title", title);
    return db.insert(mTUserPhoto, null, cv);
}
//查詢照片信息
public Cursor SearchPhoto(int row,String sort){
    Cursor cur = null;
    try{
        String ord = (sort==null|| sort.toLowerCase().startsWith("a"))?"asc":"desc";
        String sql = "select * from UserPhoto order by photoId "+ord;
        String[] args = {String.valueOf(row)};
        if(row>0){
            sql +=" limit ?";
        }else{
            args=null;
        }
        cur = ExecSQLForCursor(sql,args);           
    }catch (Exception e) {
        cur = null;
        Log.e("SearchPhoto Exception",e.getMessage());
        e.printStackTrace();
    }
    return cur;
}   
//修改照片信息
public int UpdateUserPhoto(int photoId,int classId,String title,String content, String tag){
    SQLiteDatabase db =getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("classId", classId);
    cv.put("title", title);
    cv.put("content", content);
    cv.put("tag", tag);
    String[] args = {String.valueOf(photoId)};
    return db.update(mTUserPhoto, cv, "photoId=?",args);              
}
//刪除照片信息
public int DeleteUserPhoto(int photoId){
    SQLiteDatabase db =getWritableDatabase();
    String[] args = {String.valueOf(photoId)};
    return db.delete(mTUserPhoto, "photoId=?", args);
}

}</pre>主要用到的類:SQLiteOpenHelper、SQLiteDatabase及ContentValues

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!