设为首页 收藏本站
查看: 1236|回复: 0

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

[复制链接]

尚未签到

发表于 2016-12-1 10:49:49 | 显示全部楼层 |阅读模式
  在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;}@Overridepublic void onCreate(SQLiteDatabase db) {// 创建表db.execSQL(mCreateSqlForNoteClass);db.execSQL(mCreateSqlForUserPhoto);//初始化数据for(int i=0;i<mInsertSqlForNoteClass.length;i++)db.execSQL(mInsertSqlForNoteClass);}@Overridepublic 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);}}
主要用到的类:SQLiteOpenHelper、SQLiteDatabase及ContentValues

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-308137-1-1.html 上篇帖子: Android数据的四种存储方式之SharedPreferences、SQLite、ContentProvider和File 下篇帖子: 二维码和相片在SQLite中的图片保存和查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表