`

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

阅读更多

在android开发中,我们常常用sqlite来存储用户信息,如何进行sqlite常规操作呢,请参阅下面的示例代码:

Plain代码
  1. package com.db.imgfornote;  
  2.   
  3. import android.content.ContentValues;  
  4. import android.content.Context;  
  5. import android.database.Cursor;  
  6. import android.database.sqlite.SQLiteDatabase;  
  7. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  8. import android.database.sqlite.SQLiteOpenHelper;  
  9. import android.util.Log;  
  10.   
  11. public class DBHelper extends SQLiteOpenHelper {  
  12.     final private static String mDbName="imgfornote" ;  
  13.     final private static int mDbVersion=1 ;  
  14.     private static DBHelper mInstance=null;  
  15.     private final static String mTUserPhoto="UserPhoto" ;  
  16.     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')))" ;  
  17.     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')))" ;  
  18.     final private static String[] mInsertSqlForNoteClass={"insert into NoteClass(className) values('默认分类[私有]');" , "insert into NoteClass(className) values('读书笔记[私有]');" , "insert into NoteClass(className) values('电子资料[公开]');" };  
  19.     private DBHelper(Context context, CursorFactory factory) {  
  20.         super(context, mDbName, factory, mDbVersion);     
  21.     }  
  22.       
  23.     public static DBHelper GetInstance(Context context, SQLiteDatabase.CursorFactory factory)  
  24.     {  
  25.         if(mInstance==null){  
  26.             mInstance = new DBHelper(context,factory);    
  27.         }  
  28.         return mInstance;  
  29.     }  
  30.   
  31.     @Override  
  32.     public void onCreate(SQLiteDatabase db) {  
  33.         // 创建表  
  34.         db.execSQL(mCreateSqlForNoteClass);   
  35.         db.execSQL(mCreateSqlForUserPhoto);  
  36.         //初始化数据  
  37.         for(int i=0 ;i<mInsertSqlForNoteClass.length;i++)  
  38.             db.execSQL(mInsertSqlForNoteClass[i]);  
  39.     }  
  40.   
  41.     @Override  
  42.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  43.         // TODO Auto-generated method stub  
  44.   
  45.     }  
  46.       
  47.     private Cursor ExecSQLForCursor(String sql, String[] selectionArgs){  
  48.         SQLiteDatabase db =getWritableDatabase();  
  49.         Log.i("ExecSQLForCursor" ,sql);  
  50.         return db.rawQuery(sql, selectionArgs);  
  51.     }  
  52.     private void ExecSQL(String sql){  
  53.         try{  
  54.             SQLiteDatabase db =getWritableDatabase();  
  55.             ExecSQL(sql,db);  
  56.         }catch(Exception e){  
  57.             Log.e("ExecSQL Exception" ,e.getMessage());  
  58.                     e.printStackTrace();  
  59.         }  
  60.     }  
  61.     private void ExecSQL(String sql,SQLiteDatabase db ){  
  62.     try{  
  63.             db.execSQL(sql);      
  64.             Log.i("ExecSQL" ,sql);  
  65.         }catch(Exception e){  
  66.             Log.e("ExecSQL Exception" ,e.getMessage());  
  67.                 e.printStackTrace();  
  68.         }  
  69.     }  
  70.     //添加照片信息  
  71.     public long InsertUserPhoto(String photoName,String title){  
  72.         SQLiteDatabase db =getWritableDatabase();  
  73.         ContentValues cv = new ContentValues();  
  74.         cv.put("photoName" , photoName);  
  75.         cv.put("title" , title);  
  76.         return db.insert(mTUserPhoto, null, cv);  
  77.     }  
  78.     //查询照片信息  
  79.     public Cursor SearchPhoto(int row,String sort){  
  80.         Cursor cur = null;  
  81.         try{  
  82.             String ord = (sort==null|| sort.toLowerCase().startsWith("a" ))? "asc" : "desc" ;  
  83.             String sql = "select * from UserPhoto order by photoId " +ord;  
  84.             String[] args = {String.valueOf(row)};  
  85.             if(row>0 ){  
  86.                 sql +=" limit ?" ;  
  87.             }else{  
  88.                 args=null;  
  89.             }  
  90.             cur = ExecSQLForCursor(sql,args);             
  91.         }catch (Exception e) {  
  92.             cur = null;  
  93.             Log.e("SearchPhoto Exception" ,e.getMessage());  
  94.             e.printStackTrace();  
  95.         }  
  96.         return cur;  
  97.     }     
  98.     //修改照片信息  
  99.     public int UpdateUserPhoto(int photoId,int classId,String title,String content, String tag){  
  100.         SQLiteDatabase db =getWritableDatabase();  
  101.         ContentValues cv = new ContentValues();  
  102.         cv.put("classId" , classId);  
  103.         cv.put("title" , title);  
  104.         cv.put("content" , content);  
  105.         cv.put("tag" , tag);  
  106.         String[] args = {String.valueOf(photoId)};  
  107.         return db.update(mTUserPhoto, cv, "photoId=?" ,args);                  
  108.     }  
  109.     //删除照片信息  
  110.     public int DeleteUserPhoto(int photoId){  
  111.         SQLiteDatabase db =getWritableDatabase();  
  112.         String[] args = {String.valueOf(photoId)};  
  113.         return db.delete(mTUserPhoto, "photoId=?" , args);  
  114.     }  
  115. }  


主要用到的类:SQLiteOpenHelper、SQLiteDatabase及ContentValues

分享到:
评论

相关推荐

    android SQLite数据库的增删改实例

    本教程将深入探讨如何在Android中进行SQLite数据库的增、删、改操作。 首先,让我们了解Android SQLite数据库的基本组成部分。一个SQLite数据库由一个或多个表格组成,每个表格包含一系列列,列定义了数据类型。...

    Android程序演示对sqlite数据库增删改基本操作2014-05-04

    本篇将详细讲解如何在Android程序中进行SQLite数据库的基本操作,包括增(添加数据)、删(删除数据)、改(修改数据)。 首先,Android系统提供了`SQLiteOpenHelper`类,它是处理SQLite数据库的主要工具类。我们...

    安卓连接数据库及增删改查操作

    在安卓应用开发中,数据库是存储和管理数据的核心组件,特别是在需要持久化用户数据或实现离线功能的应用中。...通过不断地练习和优化,你将能够熟练地在Android应用中管理和操作数据库,为用户提供高效的数据服务。

    delphi使用unidac连接sqlite实现增删改的例子

    这样,我们就可以通过编写SQL语句来对数据库进行操作。 3. **插入数据** 要向SQLite数据库中插入数据,可以使用TUniQuery的SQL属性设置INSERT语句,例如: ``` SQL.Text := 'INSERT INTO MyTable (Column1, ...

    易语言组合框使用Sqlite数据库添加数据

    在本教程中,我们将探讨如何利用易语言与Sqlite数据库进行集成,实现组合框(ComboBox)的数据操作,包括数据的增加、修改和删除。 Sqlite是一个轻量级的、开源的关系型数据库管理系统,它不需要单独的服务器进程,...

    labview控制sqlite的增删改查

    在LabVIEW中控制SQLite,可以通过编写VIs(Virtual Instruments)来实现对SQLite数据库的增删改查操作。 **1. 创建SQLite数据库连接** 在LabVIEW中,首先需要创建一个SQLite数据库连接。这通常通过调用SQLite的动态...

    androidstudio数据库增删改

    本教程将详细讲解如何在Android Studio中进行数据库的增、删、改操作。 首先,我们需要创建一个SQLite数据库。在Android应用中,我们通常会创建一个SQLiteOpenHelper的子类,比如名为`DatabaseHelper`的类。这个类...

    delphi使用unidac连接sqlite实现增删改的例子.zip

    以上就是使用Delphi和Unidac组件连接SQLite数据库并进行增删改操作的基本步骤。通过这种方式,开发者可以高效地构建数据库驱动的应用程序,同时享受到Delphi和SQLite数据库的性能优势。在实际项目中,还需要考虑更多...

    delphi使用unidac连接sqlite实现增删改的简单的例子

    Unidac提供了高效且灵活的方式来连接和操作数据库,简化了数据库应用的开发过程。 3. **SQLite**:这是一个开源的嵌入式关系型数据库,以其轻量级、独立性和跨平台性而闻名。它无需单独的服务器进程,可以直接在...

    数据库增删改

    通过以上步骤,你可以在Android应用中实现对SQLite数据库的增删改操作,并将结果显示在ListView中。在实际开发中,还可以结合ContentProvider和LoaderManager进行更高效的数据管理和UI更新。同时,理解并熟练掌握...

    安卓SQLite数据库相关-文件管理器实现方法支持重命名删除文件打开文件需要增删改的同志可以在这个基础上去修改.rar

    本压缩包文件提供了关于如何在Android应用中实现一个文件管理器,该管理器不仅能够浏览文件,还支持重命名、删除以及打开文件等操作,这对于需要对SQLite数据库进行增删改查的开发者来说,是一个很好的起点。...

    利用contentprovider和contentresolver执行对数据库的增删改查操作,

    在Android开发中,如果我们需要对数据库进行增、删、改、查(CRUD)操作,这两个组件就显得尤为重要。下面我们将深入探讨如何利用ContentProvider和ContentResolver执行这些操作。 **ContentProvider** ...

    android SQlite、listView中加按钮的使用

    综上所述,这个“android SQlite、listView中加按钮的使用”的项目涵盖了Android开发中的重要知识点,包括SQLite数据库的管理和操作,ListView的自定义适配器及事件监听,以及sharedPreferences的使用。这些技术对于...

    Android之采用execSQL与rawQuery方法完成数据的添删改查操作详解

    SQLiteDatabase 操作 SQLite 数据库 代码如下:/* Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)...

    sqllite增删改操作

    SQLite支持标准的SQL语法,允许通过SQL语句进行数据的增删改查操作。下面将详细介绍SQLite中的增删改操作。 ### 增(Add) 在SQLite中,添加新记录通常使用`INSERT INTO`语句。例如,如果我们有一个名为`Students`...

    C# SQLite3增删改查Demo

    本篇将重点介绍如何使用C#语言进行SQLite3的增删改查操作,这对于初学者来说是一次极好的实践机会。 首先,我们要理解C#与SQLite3的集成。C#通过SQLite的.NET数据提供程序(System.Data.SQLite)来与SQLite交互。...

    android sqlite简单增删改查操作

    本文将深入探讨Android中SQLite数据库的简单增、删、改、查(CRUD)操作。 ### 一、SQLite简介 SQLite是一个开源的关系型数据库,它内置于Android系统中,无需额外安装任何库。它的优点在于体积小、速度快、可移植...

    Android中ListView,SQLite,BaseAdapter的结合[参照].pdf

    execSQL方法用于执行任何SQL语句,比如INSERT、UPDATE、DELETE等,它能够实现对数据库的增删改操作。query方法用于执行查询操作,其返回一个Cursor对象,通过该对象可以遍历查询结果集。 最后,文件片段提到了一个...

    SQLite操作的封装

    在"标签"中提到的"Android SQLite 查插删改 封装",这些都是Android开发中与SQLite数据库打交道的基本操作。通过这个工具类,开发者可以更高效地进行这些操作,提高开发效率,减少错误,并保持代码的整洁。 至于...

Global site tag (gtag.js) - Google Analytics