[转]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);
    }
}
时间: 2024-11-08 05:13:14

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

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

1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法的使用了 bean对象: public class Person { private int id; private String name; private String number; } 数据库的创建以及表的创建: package com.example.db; import android.

android中SQLite数据库的增删改查

1.数据库帮助类PersonSQLiteOpenHelper package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas

【Android基础篇】SQLite数据库的增删改查基本操作

一.概述 SQLite是Android系统的核心数据存储服务之一,它是一个轻型的嵌入式数据库,占用非常少的资源却能提供很好很快的数据存取服务,许多大型的需要数据存储的Android项目都有用到SQLite(也可以用于桌面应用程序). 下面介绍一下SQLite的创建数据库.表的操作,以及基本的增删改查操作. 二.基本操作API简介 在Android中,SQLiteDatabase类提供了SQLite的底层API,但在使用SQLite数据库时,我们往往不会直接操作SQLiteDatabase这个类,

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

    在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Unix等主流操作系统,同一时候可以跟非常多程序语言如C#.PHP.Java等相结合.以下先回想SQL的基本语句,再讲述Android的基本操作. 一. adb shell回想SQL语句     首先,我感觉自己整个大学印象最深的几门课就包含<数据库>,所以想先回想SQL增删改查的基本语句.而在And

[android] sql语句实现数据库的增删改查

Javaweb实现增删改查的步骤,1.加载jdbc的驱动,2.连接到数据库 3.准备sql语句, Android中加载驱动已经完成了,拿到数据库的引用就是链接数据库了. 获取SQLitedatabase 对象,调用上一节中helper对象的getWritableDatabase()方法 调用SQLitedatabase 对象的execSQL()方法,执行sql语句 例如:insert into person (name) values(”taoshihan”) Select * from per

使用oledb对数据库进行增删改查及批量插入操作

使用oledb操作数据库工具类,可使用泛型统一操作 using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Linq; using System.Reflection; using System.Text; using System.Windows.Forms; namespace CommonUtil { public class DataB

andorid SQLite数据库的增删改查

.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&qu

Android实现SQLite数据库的增、删、改、查的操作

核心代码DAO类 package com.examp.use_SQLite.dao; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import