Android 如何对sqlite数据库进行增删改[insert、update和delete] 操作

jopen 13年前
     在android开发中,我们常常用sqlite来存储用户信息,如何进行sqlite常规操作呢,请参阅下面的示例代码:    <pre class="brush:java; toolbar: true; auto-links: false;">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