`

android中的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;
	}

	@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数据库查看工具

    它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。 为什么要用 ...

    Android数据库SQLite详解

    Android中的SQLite操作 - **SQLiteOpenHelper**: 这是Android提供的一个抽象类,用于创建、升级和打开数据库。你需要继承这个类并实现其中的`onCreate()`和`onUpgrade()`方法。 - **onCreate()**: 当数据库首次...

    android studio1.2 sqlite的操作

    下面将详细介绍如何在Android Studio 1.2中进行SQLite操作。 首先,我们需要创建一个SQLite数据库。在Android应用中,我们通常会创建一个`SQLiteOpenHelper`的子类,如`DatabaseHelper`。这个类主要负责数据库的...

    android 的sqlite数据库加密实现

    1. 加密后的数据库操作与普通SQLite操作类似,但需要注意的是,所有对数据库的读写操作都需要在已打开的加密数据库上下文中进行。 2. 数据迁移:如果应用之前使用的是未加密的SQLite数据库,需要在升级时迁移数据到...

    android操作数据库Sqlite源代码

    SQLite被集成在Android操作系统中,允许开发者在应用程序中存储和管理数据。本主题主要探讨如何通过源代码来实现对SQLite数据库的增、删、查、改(CRUD)操作。 首先,SQLiteAdmin.rar可能包含一个用于管理SQLite...

    Android和SQLite简介(对官方文档的翻译).doc

    - **全面支持**:Android原生支持SQLite数据库,这意味着开发者可以轻松地在自己的应用程序中集成SQLite数据库。 - **访问控制**:在Android中创建的SQLite数据库只能被同一应用程序内的类访问,从而确保了数据的...

    Android之Sqlite数据库操作实例

    本实例将深入探讨如何在Android中使用SQLite数据库进行基本的操作,包括创建数据库、创建表、插入数据、查询数据以及更新和删除数据。 首先,我们来了解SQLite在Android中的使用基础。Android系统会为每个应用程序...

    Android数据库sqlite存储

    SQLite数据库在Android应用中扮演着至关重要的角色,它允许开发者创建、修改和管理数据库,无需用户干预,提供了高效的数据操作接口。下面将详细阐述如何在Android Studio中实现SQLite数据库的数据新建、查询、添加...

    android操作sqlite数据库

    很实用的sqlite数据库操作代码,注释比较全面,还结合了listview组件。

    Android SQLite学习工具

    这篇博客“Android SQLite学习工具”可能详细介绍了如何在Android环境中使用SQLite进行数据操作,并提供了一个实用的SQLite管理工具——sqlite3.exe。 SQLite数据库在Android中的应用主要包括创建数据库、创建表、...

    AndroidStudio Sqlite数据库操作

    Sqlite数据库操作

    android对sqlite数据库的操作

    本篇文章将深入探讨如何在Android中进行SQLite数据库的操作。 一、SQLite数据库简介 SQLite是一个开源的嵌入式数据库系统,它不需要单独的服务器进程,并且全部数据库都存储在一个文件中。在Android中,每个应用都...

    android中sqlite的使用

    在Android开发中,SQLite是一个非常重要的数据存储工具。SQLite是一个轻量级的、关系型数据库管理系统,它嵌入到应用程序中,无需单独的服务进程。SQLite支持标准的关系数据库特性,如SQL语法、事务处理和预编译语句...

    android之sqlite实现增删改查

    "Android之SQLite实现增删改查"这个标题表明了本文将介绍如何在Android平台中使用SQLite数据库来实现增删改查操作。 描述解释 "这是学习及开发SQlite的一个很好的例子,含有其增删改查的所有功能附有完整的代码可以...

    Android Database SQLite 多表操作源码

    在多表操作中,常见的操作有联接(JOIN)、子查询和事务处理。以下是一些关键知识点: 1. **创建表**:使用SQL语句`CREATE TABLE`来定义表结构,包括字段名、字段类型、主键等。例如: ```sql CREATE TABLE Table...

    Android数据库SQLite基本操作工程

    在这个"Android数据库SQLite基本操作工程"中,我们将深入探讨如何在Android应用中进行最基础的数据库操作:增、删、改、查。 1. **创建SQLite数据库** - 在Android中,我们通常通过继承`SQLiteOpenHelper`类来创建...

    android Sqlite基本操作

    为了提高性能和用户体验,可以使用异步任务或Android的`AsyncTask`来处理SQLite操作,避免阻塞主线程。 六、数据库升级 当需要更改数据库结构(如添加、删除或修改表)时,需要增加`DATABASE_VERSION`并实现`...

    Android实验报告Sqlite数据库操作.pdf

    Android SQLite 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...

    android-sqlite-encrypt

    "android-sqlite-encrypt"库的核心功能在于对SQLite数据库进行透明的加密,这意味着开发者可以使用标准的SQLite API进行操作,而无需额外处理加密和解密的逻辑。该库利用了SQLCipher的加密算法,这是一种开源的、...

    Android-sqlite-android一个AndroidSQLite支持库

    3. **事务处理**:支持事务操作,确保数据的一致性和完整性,可以在一组操作中进行原子性的提交或回滚。 4. **版本管理**:提供了数据库版本管理和升级机制,当数据库结构发生变化时,可以通过升级脚本轻松更新...

Global site tag (gtag.js) - Google Analytics