zoukankan      html  css  js  c++  java
  • 《第一行代码》学习笔记24-持久化技术(3)

    1.SQLite-轻量级的关系型数据库,运算速度非常快,占用资源很少,通常需要几百K的内存,故特别适合在移动设备上使用。

    2.SQLite支持标准的SQL语法,遵循数据库的ACID事务,比一般的数据库简单的多,甚至不用设置用户名和密码即可使用。

    3.Android为让我们更加方便地管理数据库,提供了一个SQLiteOpenHelper帮助类,借助该类对数据库进行创建和升级。

    4.SQLiteOpenHelper是个抽象类,使用它需要创建一个自己的帮助类去继承它。其有两个抽象方法,是onCreate()和onUpgrade(),
    必须在自己的帮助类里重写这两个方法,再分别在两个方法中去实现创建,升级数据库的逻辑。

    5.SQLiteOpenHelper中有两个非常重要的实例方法:getReadableDatabase()和getWritableDatabase()。这两个方法都可以创建或打开一个现有
    的数据库(如果数据库已存在则直接打开,否则创建一个新的数据库),并返回一个可对数据库进行读写操作的对象。不同的是,当数据库不可写入
    时(如磁盘空间已满)getReadableDatabase()方法返回的对象将以只读的方式去打开数据库,而getWritableDatabase()方法则出现异常。

    6.SQLiteOpenHelper有两个构造方法可供重写,一般使用参数少一点的那个构造方法。该构造方法中接收四个参数,第一个是Context,必须要有它
    才能对数据库进行操作;第二个是数据库名,创建数据库时使用的就是这里指定的名称;第三个允许我们在查询数据的时候返回一个自定义的Cursor,
    一般是传入null;第四个表示当前数据库的版本号,可用于对数据库升级操作。

    7.构建出SQLiteOpenHelper的实例后,再调用getReadableDatabase()或getWritableDatabase()方法就能创建数据库,数据库文件会存放在
    /data/data//databases/目录下。此时,重写的onCreate()方法也会得到执行,故通常会在这里去处理一些创建表的逻辑。

    8.创建一个名为BookStore.db的数据库,在这个数据库中新建一张Book表,表中有id(主键),作者,价格,页数和书名等列。
    Book表的建表语句如下:

    create table Book (
            id integer primary key auto increment, 
            author text,
            price real,
            pages integer,
            name text )
    

    integer:整型,real:浮点型,text:文本类型,blob:二进制类型。上述建表语句,使用了primary key将id列设为主键,并用autoincrement关键字
    表示id列是自增长的。

  • 相关阅读:
    雷观(二十):个人竞争策略,战国策与个人略
    雷观(二十):个人竞争策略,战国策与个人略
    2015年工作中遇到的问题:31-40
    2015年工作中遇到的问题:31-40
    UE4.5.0的Kinect插件(Plugin)<一>
    中国象棋V2:Java源代码、毕业设计等所有文档,已经全部提交到CSDN-Code平台
    中国象棋V2:Java源代码、毕业设计等所有文档,已经全部提交到CSDN-Code平台
    怎样在log4j.xml配置文件中引入变量:小公司经验较多的我和阿里UC等大公司经验较多的Boss,一些技术交流和探讨
    Jerry和您聊聊Chrome开发者工具
    Hybris ECP里Customer对应的数据库表
  • 原文地址:https://www.cnblogs.com/Iamasoldier6/p/5025924.html
Copyright © 2011-2022 走看看