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列是自增长的。

转载于:https://www.cnblogs.com/Iamasoldier6/p/5025924.html

《第一行代码》学习笔记24-持久化技术(3)相关推荐

  1. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  2. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  8. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  9. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

  10. 第一行代码学习笔记第四章——探究碎片

    知识点目录 4.1 碎片是什么 4.2 碎片的使用方式 * 4.2.1 碎片的简单用法 * 4.2.2 动态添加碎片 * 4.2.3 在碎片中模拟返回栈 * 4.2.4 碎片和活动之间进行通信 4.3 ...

最新文章

  1. 【Unity笔记】使用协程(Coroutine)异步加载场景
  2. iOS开发——高级技术地图功能的实现
  3. Android SQLite数据库增删改查操作
  4. android js变量定义数组长度,js 声明数组和向数组中添加对象变量的简单实例
  5. flask html 得到文本框 input的内容_【笔记7】HTML及其常见标签
  6. 动态规划解题套路框架
  7. AMIO编辑器开发(三):转向C++,月底遇到第二个瓶颈
  8. monolith_将Java EE Monolith雕刻成微服务
  9. 什么是485中继器,RS-485中继器产品介绍
  10. 994. 腐烂的橘子
  11. mysql 分表后排序_MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?...
  12. 【codevs1281】Xn数列,矩阵乘法练习
  13. OMG,学它!javaweb网上购物系统
  14. 解决硬盘磁道损坏问题(亲测)
  15. VB/VBA的浮点数结构
  16. 十折交叉验证python_机器学习(十二)交叉验证实例
  17. 多少开发人员 饿了么_做个美团(饿了么)网站需要多少钱?
  18. AutoPatch java_AutoPatch 成功, 加载逻辑修复成功, 但 patch.jar 反编译异常
  19. vtkPolyData获取bounds点坐标
  20. linux定时任务生效_linux ( crontab 定时任务命令)

热门文章

  1. STM32开发 -- 主天线和分集天线
  2. ifstream 和 ofstream 文件中读取和写入操作
  3. Java throws子句
  4. Java内部类及其实例化
  5. replugin源码解析之replugin-plugin-gradle(插件的gradle插件)
  6. Android6.0的SMS(短信)源码分析--短信接收
  7. eclipse项目迁移到Android Studio
  8. android retrofit入门,Android开发 retrofit入门讲解
  9. JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑
  10. 两端外伸梁内力计算机程序,理解材料力学核心问题:梁的弯曲 剪力弯矩图快速软件绘法...