摘要:每个应用程序都要使用数据, Android 应用程序也不例外, Android 使用开源的、与操作系统无关的 SQL 数据库 --SQLite ,本文介绍的就是如何为你的 Android 应用程序创建和操作 SQLite 数据库。
数据库支持每个应用程序无论大小的生命线,除非你的应用程序只处理简单的数据,那么就需要一个数据库系统存储你的结构化数据,Android使用SQLite数据库,它是一个开源的、支持多操作系统的SQL数据库,在许多领域广泛使用,如Mozilla FireFox就是使用SQLite来存储配置数据的,iPhone也是使用SQLite来存储数据的。 在Android中,你为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data//databases文件夹中,在这篇文章中,你将会学习到如何在Android中创建和使用数据库。
Android如何使用SQLiteOpenHelper
•1.SQLiteOpenHelper
•  SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实现它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法
•  onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等。
•  onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。
2.实现代码
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.database.sqlite.SQLiteDatabase.CursorFactory;public class DBHelper extends SQLiteOpenHelper {    //数据库版本    private static final int VERSION = 1;        //新建一个表    String sql = "create table if not exists TestUsers"+    "(id int primary key,name varchar,sex varchar)";            public DBHelper(Context context, String name, CursorFactory factory, int version) {        super(context, name, factory, version);    }    public DBHelper(Context context,String name,int version){        this(context,name,null,version);    }           public DBHelper(Context context,String name){        this(context,name,VERSION);    }           @Override       public void onCreate(SQLiteDatabase db) {        db.execSQL(sql);    }      @Override        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {            }    } 


3.SQLite的使用
•Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API。使用它能实现基本的CRUD操作,通过getWritableDatabase()和getReadableDatabase()可以获取数据库实例。
4.实现代码
   /**     * 新建一个数据库     * @param dbName     * @return     */    public SQLiteDatabase CreateDatabase(String dbName){        dbHelper = new DBHelper(this, dbName);        return dbHelper.getWritableDatabase();    } /**     * 打开数据库     */    public void OpenDb(){        dbHelper = new DBHelper(this, "TestDb01");        db = dbHelper.getWritableDatabase();    }        /**     * 关闭数据库     */    public void CloseDb(){        dbHelper.close();    } /**     * 新建一个表     * @param db     */    public void CreateTable(){        db = dbHelper.getWritableDatabase();        String sql = "create table if not exists TestUsers"+                        "(id int primary key,name varchar,sex varchar)";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "create table failed");        }    } /**     * 插入数据     */    public void InsertTb(){        db = dbHelper.getWritableDatabase();        String sql = "insert into TestUsers (id,name,sex) values (2,'hongguang','men')";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "insert failed");        }    } /**     * 更新数据     */    public void UpdateTb() {        db = dbHelper.getWritableDatabase();        String sql = "Update TestUsers set name = 'anhong',sex = 'men' where id = 2";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "update failed");        }    }  /**     * 删除数据     */    public void DeleteTb(){        db = dbHelper.getWritableDatabase();        String sql = "delete from TestUsers where id = 2";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "delete failed");        }    } 

5.一些SQLite操作命令 •  5.1 adb shell 进入命令模式 •  5.2 cd 文件名 进入文件 •  5.3 ls或ls -l 查看目录下的文件 •  5.4 sqlite3 数据库名 进入数据库 •  5.5 .schema 查看数据库下的信息 •  5.6 ctrl+d 退出sqlite模式


更多相关文章

  1. Android(安卓)使用 OpenCV (JNI 实现)
  2. Android(安卓)的网络编程
  3. 使用android--建立第一个APP程序
  4. RelativeLayout属性和使用, 实现上面view叠加在下面view之上的效
  5. 在 Android(安卓)上使用协程(三) :Real Work
  6. Android(安卓)React Native使用原生UI组件
  7. 使用 Android(安卓)虛擬機器 - androidbmi/wiki/PlayEmulator
  8. android orm映射框架 ormlite (类似于hibernate) 很强大
  9. android studio 使用adb命令传递文件到android设备

随机推荐

  1. html5游戏移植到android并打包成apk,加广
  2. Android实战技巧:使用原始资源文件
  3. Android(安卓)系统架构分析
  4. 微信开放平台开发第三方授权登陆(三):Androi
  5. 【整理一点资料】 Andorid的进程和线程模
  6. 在Android(安卓)library中不能使用switch
  7. 【Android(安卓)4.0】Android(安卓)Icon
  8. xamarin android异步更新UI线程
  9. Android缓存浅析
  10. [Android]获取未安装的APK图标(原创非转