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

[转]Android 如何对sqlite数据库进行增删改[insert、update和delete] 操作的更多相关文章

  1. Android下利用SQLite数据库实现增删改查

    1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法 ...

  2. Android 系统API实现数据库的增删改查和SQLite3工具的使用

    在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...

  3. Android中Sqlite数据库进行增删改查

    今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...

  4. Android SQL语句实现数据库的增删改查

    本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...

  5. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

  6. [Android] SQLite数据库之增删改查基础操作

        在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...

  7. Android对Sqlite数据库的增删改查

    SqLite 数据库 Google 为我们提供了sqlite相关的api SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他 SqLiteDatabase 类 ...

  8. SQLite数据库以及增删改查的案例

    Android使用开源的与操作系统无关的SQL数据库——SQLite 一:在命令行下创建数据库: 1.启动模拟器后,打开命令行,执行adb shell 2.进入所在工程目录 3.执行sqlite3 m ...

  9. greendao对SQLite数据库的增删改查操作

    利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...

随机推荐

  1. ocean所用的蝴蝶纹理

    #include <ork/render/FrameBuffer.h> #include <ork/scenegraph/SceneManager.h> #include &l ...

  2. 转delphi中nil的用法

    转自:http://blog.csdn.net/haiou327/article/details/6666124 delphi中nil的用法 和C++中的NULL一样的意思,指空值,它和0值不一样-- ...

  3. 判定生死的心跳机制 --ESFramework 4.0 快速上手(07)

    在Internet上采用TCP进行通信的系统,都会遇到一个令人头疼的问题,就是"掉线".而"TCP掉线"这个问题远比我们通常所能想象的要复杂的多 -- 网络拓扑 ...

  4. 运行CImg库笔记

    1. 在程序代码中加入 #include "CImg.h" using namespace cimg_library; 2. (1)Mac下 出现错误“无X11/Xlib.h”,: ...

  5. webupload-upload执行上传时,进入的路径与linux服务器上的不一致

    将if判断处改为garage即可. 原因是因为if处判断处理没有执行,因为要需要把从garage开始的到后面的字符串都去掉才行 不然:local=http://www.xxx.com/garage s ...

  6. java 图形界面 mvc模式控制

    使用模型-视图-控件结构来开发GUI程序. 下面的程序演示了MVC模式开发的java程序. 其中CircleModel为模型,包含了圆的半径,是否填充,等属性. CircleView为视图,显示这个圆 ...

  7. 《JavaScript高级程序设计》读书笔记 ---基本概念小结

     ECMAScript 中的基本数据类型包括Undefined.Null.Boolean.Number 和String. 与其他语言不同,ECMScript 没有为整数和浮点数值分别定义不同的数据 ...

  8. js导入插件注意事项.txt

    网上收集的答案如下:==============================================1)确认js真的被引用到2)确认js引用顺序没问题3)确认js代码里的括号等都匹配,不会 ...

  9. C++编写一个简单的DLL

    什么是DLL: 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上 Windows操作系统中几乎所有的内容都由DL ...

  10. MFC中修改默认启动对话框方法

    // CMyAppEApp 初始化 BOOL CMyAppEApp::InitInstance(){// 如果一个运行在 Windows XP 上的应用程序清单指定要// 使用 ComCtl32.dl ...