摘要:每个应用程序都要使用数据, 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快速开发框架afinal 开发android应用程序
  2. flutter与android混合开发一:Android原生项目创建flutter模块、An
  3. Android学习札记13:为什么更推荐使用Parcelable来在Activity间传
  4. Android系统对应用程序权限申请的处理方式分析
  5. Android应用程序汉化教程
  6. Android 之读取元素中的数据

随机推荐

  1. android java进程管理(六)之apk进程的回
  2. Layout___模块重用之include布局整合
  3. android中如何在活动在回收时保存临时数
  4. Android(安卓)不通过USB数据线调试的方法
  5. Android设置里面默认存储器选项(default w
  6. android 新闻图片加载,缓存处理
  7. Android应用优化之流畅度
  8. 在Android上用Canvas绘制音频波形图
  9. 「Do.003」adb无线连接多台Android设备
  10. Android(安卓)Studio 升级3.4,Gradle升级5