• [转]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);
        }
    }
  • 相关阅读:
    2015.2.27 UltraEdit中显示XML结构
    2015.1.31 DataGridView自动滚动到某行
    2015.1.15 利用函数实现将一行记录拆分成多行记录 (多年想要的效果)
    2015.1.15 利用Oracle函数返回表结果 重大技术进步!
    2015.1.15 利用Oracle函数插入表结构 Bulk collect into 不用循环,简洁高效
    2015.1.8 Left join 左连接
    2015.1.10 解决DataGridView SelectionChanged事件自动触发问题
    delphi 遍历窗口
    delphi 访问 protected 属性 哈哈
    clientdataset 读取excel 如果excel 文件不存在的时候 相应的gird 会不显示数据, 鼠标掠过 gird 格子 才会显示数据。 这是一个bug 哈哈
  • 原文地址:https://www.cnblogs.com/xunbu7/p/5000918.html
Copyright © 2020-2023  润新知