粗略的记录一下Android数据库的处理方式。android中本地存储数据分为4种:SharePreference、SQLite、Content Provider和File,都是存放于“data/data/程序包名”目录下。可以看出,android对于数据,基本上都是私有化的。


SQLite是一种轻型数据库,目前移动设备端,基本都使用SQLite。更多关于sqlite的使用,就参看这里:http://www.sqlite.org/

Android上使用SQLite的时候,通常会操作两个类:SQLiteDatabaseSQLiteOpenHelper

SQLiteOpenHelper类

类的描述:A helper class to manage database creation and version management。可以知道,这个类主要是用来创建数据库以及管理数据库版本更新。实际的应用:

package com.lanyuweng.mibaby.DataUtil; import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import com.lanyuweng.Config.Config;public class DatabaseHelper extends SQLiteOpenHelper{    public DatabaseHelper(Context context) {        super(context,Config.DBNAME,null,Config.VERSION);    }    //IF NOT EXISTS     public static final String sql_createtable = "CREATE TABLE NoteItems (Note_title varchar, Note_content varchar, Note_create_time datetime)";    public static final String sql_deletetable = "DROP TABLE IF EXISTS NoteItems";        @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL(sql_createtable);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {                if(newVersion > oldVersion){            db.execSQL(sql_deletetable);        }else{            return;        }        onCreate(db);            }} 

复写其onCreate方法,在其方法执行数据库创建,同时在onUpgrade方法中对数据库更新进行管理。基本就可以满足基本的功能了,更多的方法就多查询一下文档多了解一点了。

那么实际的数据库操作,就将其放到一个数据库管理文件中,在这个当中呢,可以进行增,删,改,查,或者更多的数据库操作方法。核心的就是使用execSQL(数据库语句),看看下面:

package com.lanyuweng.mibaby.DataUtil; import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class DatabaseManager {    public SQLiteDatabase sql_db;    public DatabaseHelper sql_db_helper;    private Cursor cursor;        public DatabaseManager(Context context) {                sql_db_helper = new DatabaseHelper(context);        sql_db = sql_db_helper.getWritableDatabase();            }        public void add_NoteItem(String note_title,String note_content,String note_create_time){                String sql = "INSERT INTO NoteItems(Note_title, Note_content, Note_create_time) values"+                                    "('"+note_title+"','"+note_content+"','"+note_create_time+"')";        sql_db.beginTransaction();                try {            sql_db.execSQL(sql);            sql_db.setTransactionSuccessful();        }        finally{            sql_db.endTransaction();                    }    }        public void del_NoteItem(String note_title){                String sql = "DELETE FROM NoteItems WHERE Note_title= '"+note_title+"'";        sql_db.beginTransaction();        try {            sql_db.execSQL(sql);            sql_db.setTransactionSuccessful();        }        finally{            sql_db.endTransaction();                    }    }        public void modify_NoteIem(String old_note_title,String new_note_title,String note_content,String note_create_time){                String sql = "UPDATE TABLE NoteItems SET Note_title="+new_note_title+", Note_content="+note_content+",note_create_time="+note_create_time+"where Note_title="+old_note_title;        sql_db.beginTransaction();        try {            sql_db.execSQL(sql);            sql_db.setTransactionSuccessful();        }        finally{            sql_db.endTransaction();        }    }        public Cursor search_NoteItem(String note_title){                String sql = "SELECT * FROM NoteItems WHERE Note_title LIKE"+"%"+note_title+"%";        sql_db.beginTransaction();        try {            cursor = sql_db.rawQuery(sql, null);            sql_db.setTransactionSuccessful();        }        finally{            sql_db.endTransaction();                    }        return cursor;    }        public Cursor selectAll_NoteItems(){                String sql = "SELECT * FROM NoteItems";        sql_db.beginTransaction();                try {            cursor = sql_db.rawQuery(sql, null);        } finally{            sql_db.endTransaction();        }        return cursor;            }        public Cursor getLimitItems(int start,int end){                String sql = "SELECT * FROM NoteItems LIMIT "+start+","+end;                sql_db.beginTransaction();        try {            cursor = sql_db.rawQuery(sql,null);            cursor.moveToFirst();                    } finally{            sql_db.endTransaction();        }        return cursor;    }    } 

以上,实现了对数据库增删改查的逻辑,其中不得不提到一个Cursor类,Cursor类能够方便的操作数据库。更多关于Cursor的使用,推荐一篇文章,Cursor的使用

至此,Android数据库的操作,基本上基础的东西就是这些了,如果有其他的,想到了再补上。

多记录一点,常常回头来看,会进步的。

更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android中的Notification的使用
  6. Android(安卓)数据操作之SQLiteDatabase
  7. Android如何反编译与再编译
  8. iphone开发之常用控件的使用详解
  9. Android中使用WebView, WebChromeClient和WebViewClient加载网页

随机推荐

  1. [置顶] Android——4.2.2 文件系统目录分
  2. Android各版本源码下载链接
  3. Android Studio(十二):打包多个发布渠道的
  4. Android 简单联系人操作
  5. android中Bitmap对象怎么保存为文件?
  6. android studio混淆打包
  7. 技术|Android安装包优化
  8. android字符串处理(Mms模块短信内容解析)
  9. Android开发实践 带你理解使用WebView
  10. Android——继承SimpleAdapter重写自己的