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

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);
    }
}

 

posted on 2015-11-27 15:55  寻步  阅读(472)  评论(0编辑  收藏  举报