引用的文章:

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;          private static final String DBNAME = "customDB"        private static DBHelper mInstance = null;        //新建一个表   最好将表名和表字段放在一个常量类中,        String sql = "create table if not exists TestUsers"+          "(id int primary key,name varchar,sex varchar)";          public static <span><span></span><span class="keyword">synchronized</span><span></span></span> getInstance() {            if (null == mInstance) {                mInstance = new DBHelper(getApplicationContext(), DBNAME, null, VERSION);            }            return mInstance;        }                  private DBHelper(Context context, String name, CursorFactory factory,                  int version) {              super(context, name, factory, 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.实现代码

// 只有关键代码,建议写一个manager类去封装对数据库的操作DBHelper helper = DBHelper.getInstance();SQLiteDatabase writeDatabase = helper.getWritableDatabase();SQLiteDatabase readerDatabase = helper.getReaderbleDatabase();/* getWritableDatabase() 和 getReaderbleDatabase()的区别其中getWritableDatabase()方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase()方法就会出错。getReadableDatabase()方法则是先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。如果该问题成功解决,则只读数据库对象就会关闭,然后返回一个可读写的数据库对象。*///SQLdatabase类的方法很多,具体方法可以看源码,这里只介绍数据库的基本增、删、改、查的操作。// insert/** * ContentValues 就是键值对,与java中的map相同,只不过这里的key为表字段。 * 最主要介绍第二个参数,当values的值为空时,插入方法会失败,这时如果指定了第二个参数,android会插入一条只有该列的数据,值为null */// delete/** * whereClause: sql语句的where条件 * whereArgs: 条件的对应值 */public int delete(String table, String whereClause, String[] whereArgs)// update  后面两个参数是确定你要修改的具体记录public int update(String table, ContentValues values, String whereClause, String[] whereArgs)// query    参数熟悉sql语法的就会明白,见名知意public Cursor query(String table, String[] columns, String selection,    String[] selectionArgs, String groupBy, String having, String orderBy)// SQLiteDatabase也提供了一个方法供程序员自己去书写sql语句,以应付复杂的查询public void execSQL(String sql) throws SQLException









更多相关文章

  1. android 动态加载布局文件三种方法
  2. 《Android(安卓)JNI》05 在JNI中调用Java的函数
  3. Android(安卓)判断手机是否安装某个应用
  4. 安卓新技术学习资料整理 常更新哦~
  5. Android悬浮通知无效的问题
  6. Android实现机制(三)——View事件分发机制
  7. Android(安卓)LiveData 使用详解
  8. Android开发者指南(6) —— AIDL
  9. Android——api阅读记录

随机推荐

  1. 怒薅羊毛:白嫖GitHub作为个人博客免费图床
  2. 基于Spring Security和 JWT的权限系统设
  3. 芋道 Apollo 极简入门
  4. 芋道 Spring Boot WebSocket 入门
  5. 洞玩年!刚面世的黑洞照片快被玩坏了!
  6. 直观讲解一下 RPC 调用和 HTTP 调用的区
  7. Apollo 源码解析 —— 调试环境搭建
  8. 白嫖七牛云作为个人博客免费图床
  9. 第九周作业
  10. 芋道 RocketMQ 安装部署