[转]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);
}
}
[转]Android 如何对sqlite数据库进行增删改[insert、update和delete] 操作的更多相关文章
- Android下利用SQLite数据库实现增删改查
1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3: sqlite3 数据库 4 接下来就可以进行数据库的sql语法 ...
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
- android 对sqlite数据库的增删改查等各种操作
转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...
- [Android] SQLite数据库之增删改查基础操作
在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...
- Android对Sqlite数据库的增删改查
SqLite 数据库 Google 为我们提供了sqlite相关的api SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他 SqLiteDatabase 类 ...
- SQLite数据库以及增删改查的案例
Android使用开源的与操作系统无关的SQL数据库——SQLite 一:在命令行下创建数据库: 1.启动模拟器后,打开命令行,执行adb shell 2.进入所在工程目录 3.执行sqlite3 m ...
- greendao对SQLite数据库的增删改查操作
利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...
随机推荐
- Activity的四中启动模式的应用场景。
1,standard 默认情况下的启动模式,队列排序,linked 2,singleTop ,任务栈栈顶只有一个实例.如果Activity A在栈顶,就不会在A 的上面创建新的 Activity A ...
- digitalocean开通德国法兰克福机房,40Gb带宽,支持IPv6
2015年4月15日,vps服务商digitalocean宣布正式开通德国法兰克福机房.5个月前digitalocean宣布筹备Germany机房中心,经过近1个月部署,总算与用户见面了.Frankf ...
- CreateProcess注意的几个地方
1.CreateProcess失败,GetLastError返回998,应该是最后两个参数没有初始化导致的. 2.要使外部程序隐藏窗口运行,需要将STARTUPINFO的dwFlags指定为START ...
- chapter9_1 协同程序
协同程序与线程差不多,也就是一条执行序列:有自己独立的栈.局部变量.指令指针,以及和其他协同程序共享的全局变量和其他大部分东西. 两者区别在于:一个多线程的程序可以同时运行几个线程,而协同程序却需要彼 ...
- php 即时输出
<?phpset_time_limit(0);ob_end_clean();ob_implicit_flush(1);$i=0;while ( $i>=0 ) { sleep(1); ec ...
- Logger日志管理工具类
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...
- HDU 4381 Grid
背包变形. 将操作分为了两类,可以分开处理. 可以dp处理出L[i]:L[i]=-1代表从左到右 i 长度不能被拼凑出来,L[i]!=-1表示从左到右 i 长度能被拼凑出,并且最小费用为L[i]. 反 ...
- c语言_头文件_stdlib
简介 stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C.C++语言的最常用的系统函数 该文件包含了C语言标准库函数的定义 stdlib.h里面定义了五 ...
- 调试MVC项目,不关闭 IIS EXPRESS
在VS主面板打开:工具->选项->调试->编辑继续 取消选中[启用"编辑并继续"] 就OK了 (英文版的请对应相应的操作) 不过这是针对所有的调试,如果你想针 ...
- WinDbg抓取程序报错dump文件的方法
程序崩溃的两种主要现象: a. 程序在运行中的时候,突然弹出错误窗口,然后点错误窗口的确定时,程序直接关闭 例如: “应用程序错误” “C++错误之类的窗口” “程序无响应” “假死”等 此种崩溃特点 ...