Android: SQLite的使用

原创 by Zoe.zhang (《Android第一行代码阅读笔记》)

  • Android 系统内置了数据库,SQLite是一款轻量级的关系型数据库,运算速度快,占用的资源少,一般只须要几百K的内存,所以很适合用在移动设备上。
  • SQLite 不只支持基本的SQL语法,同时遵循数据库的ACID事务,相比MySQL等关系型数据库要简单不少。(5种关系型数据库比较
  • SQLite 是轻量级的数据库,其设计目标是嵌入式,SQLite不是一个独立的进程,而是做为程序的一部分,应用程序由编程语言内的API直接调用SQLite,这样能够有效得减小数据库访问延迟。SQLite将整个数据库做为一个单独的,可跨平台的文件存储在主机中;
  • SQLite的写操做智能串行进行(写数据时给数据库加锁),SQLite的读操做能够多任务同时进行。
  • SQLite是一个自给自足的,无服务器(不须要单独的服务器进程)轻量级的数据库,使用ANSI-C编写,并提供了简单和易于使用的API。
  • 相关参考博客:
    Android 数据库开发(一)SQLite3概述
    Android SQLite (三 ) 全面详解(一)
    android之存储篇_SQLite数据库_让你完全学会SQLite的使用
    Android SQLite详解

0. SQLiteOpenHelper 抽象类

  • Android 提供了一个SQLiteOpenHelper帮助类,这是一个抽象类,里面咱们须要重写两个抽象方法 onCreate() 和onUpgrade(), 在这两个函数里实现建立和升级数据库的逻辑。
  • SQLiteOpenHelper有两个构造函数,咱们通常使用参数较少的那个构造函数,该方法接收四个参数分别是:(Context,数据库名,容许返回一个自定义cursor,通常传入null,当前数据版本号)。
  • 在使用Android 的SQLite以前,须要对SQL基本语句有必定的了解。SQLite的数据类型相对来讲很简单,integer表示整型,real表示浮点型,text表示文本类型,blob表示二进制型 等,咱们一般须要在代码中执行SQL语句才能完成建表操做,以下例所示,咱们一般将建表语句定义成一个字符串常量
//新建MyDatabaseHelper
public class MyDatabaseHelper extends SQLiteOpenHelper{
    
    public static final String CREATE_BOOK = "create table BOOK("
        + "id integer primary key autoincrement,"  //逗号 primary key 设为主键,关键字autoincrement 表示自增加
        + "author text,"
        + "price real,"
        + "pages integer,"
        + "name text)";
        
    private Context mContext;
    public MyDatabaseHelper(Context context,String name,CursorFactory factory,int version){
        super(context,name,factory,version);
        mContext = context;
    }
    
    //必须重写两个抽象方法
    @Override
    public void onCreate(SQLiteOpenHelper db){
        db.execSQL(CREATE_BOOK);  //执行建表语句
    }
    
    @Override
    public void onUpgrade(SQLiteOpenHelper db,int oldVersion,int newVersion){   
    }
}

1.建立数据库

  • 数据库帮助类中有两个重要的建立数据库的实例方法:getReadableDatabase()和getwritableDatabase()方法,注意当数据库不可写入的时,使用getwritableDatabase()可能会出错;
  • 通常状况下,这两个实例的方法没有什么区别,都会检测数据库存放目录下是否有该表,若是没有则建立该表,若是存在则打开该表。
  • 数据库文件存放目录: /data/data/package name/databases/,可使用File Explorer来查看,比较推荐是使用adb shell 进行查看。
private MyDatabaseHelper dbhelper;
    
    dbhelper = new MyDatabaseHelper(this,"Bookstore.db",null,1)  // bookstore.db 表名
    //建立数据库表
    dbhelper.getWritableDatabase();

<\hahahhahah>html

2.升级数据库

3.添加数据

4.更新数据

5.删除数据

6.查询数据

使用adb shell 对数据库和表的建立状况检查

  • adb是Android SDK中自带的一个调试工具,使用这个工具能够直接对链接在电脑上的Android设备或者模拟器 进行调试操做,它存放的位置是 SDK的platform-tool目录下,注意:若是想要在cmd命令行中使用adb工具,首先要把它的路径配置到环境变量中
  • 在cmd界面输入 adb shell, 会进入到Android设备的控制台,而后经过cd命令进入到:cd /data/data/ /databases/目录下,能够经过ls命令查看目录下的全部文件。
  • 经过sqlite命令打开数据库:sqlite3 bookstore.dbandroid

  • 此外,还有别的方法,能够将db文件push出来,而后再用相关sqlite软件打开,相对会更加直观。sql

相关文章
相关标签/搜索