Android SQLite 开发教程(3): 创建数据库

SQLite下载、安装与连接 SQLite官网:https://www.sqlite.org/download.html根据自己电脑操作系统配置,选择32位或64位下载(一般情况下是64位)。总共两个压缩包。或者直接去:https://download.youkuaiyun.com/download/WenHuiJun_/87243531下载。在系统盘(C盘)见一个名称为“sqlite”的文件夹,把上面下载的两个压缩包解压到这个sqlite文件夹中 在“此电脑”(版本不一样,叫法不同)右键,点击“属性”,打开“改机系统设置” 一路点击确定下去 阅读详情

我们将使用一个TodoList 为例介绍SQLite 的基本用法,在设计SQLite数据库表时有几点建议:

  • 对于一些文件资源(如图像或是声音等)不建议直接存放在数据库表中,而今存储这些资源对应的文件名或是对于的content provider 使用的URL 全名。
  • 尽管不是强制的,在设计数据库的关键字时,所有表都包含一个_id 域做为表的关键字,它是一个自动增长的整数域。 如果使用SQLite 作为一个Content Provider,此时唯一的_id域就是必须的。

设计Todolist的数据库结构如下:

前面说过Android SDK中提供了一个SQLiteOpenHelper来帮助创建,打开,和管理数据库,一个比较常见的设计模式是创建一个数据库的Adpater,为应用程序访问数据库提供一个抽象层,该层可以封装与数据库之间的直接交互:

按照上面的原则,我们为TodoList 数据库创建两个类:ToDoDBAdapter和ToDoDBOpenHelper ,其中ToDoDBOpenHelper作为ToDoDBAdapter 内部类定义(也可以作为单独类)。构造创建数据库的SQL 语句,初始的类定义如下:

public class ToDoDBAdapter {
 
private static final String DATABASE_NAME = "todoList.db";
private static final String DATABASE_TABLE = "todoItems";
private static final int DATABASE_VERSION = 1;
 
private SQLiteDatabase mDb;
private final Context mContext;
 
public static final String KEY_ID = "_id";
public static final String KEY_TASK = "task";
public static final int TASK_COLUMN = 1;
 
public static final String KEY_CREATION_DATE = "creation_date";
public static final int CREATION_DATE_COLUMN = 2;
 
private ToDoDBOpenHelper dbOpenHelper;
 
public ToDoDBAdapter(Context context) {
mContext = context;
dbOpenHelper = new ToDoDBOpenHelper(context, DATABASE_NAME, null,
DATABASE_VERSION);
}
 
public void close() {
mDb.close();
}
 
public void open() throws SQLiteException {
try {
mDb = dbOpenHelper.getWritableDatabase();
} catch (SQLiteException ex) {
mDb = dbOpenHelper.getReadableDatabase();
}
}
 
private static class ToDoDBOpenHelper extends SQLiteOpenHelper {
 
public ToDoDBOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
 
// SQL statement to create a new database
private static final String DATABASE_CREATE = "create table "
+ DATABASE_TABLE + " (" + KEY_ID
+ " integer primary key autoincrement , " + KEY_TASK
+ " text not null, " + KEY_CREATION_DATE + " long);";
 
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
 
}
 
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion) {
Log.w("TaskDBAdapter", "Upgrading from version " + oldVersion
+ " to " + newVersion);
 
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
 
}
 
}
 
}

ToDoDBOpenHelper 为 SQLiteOpenHelper 的子类,一般需要重载onCreate(SQLiteDatabase) 和 onUpgrade(SQLiteDabase, int ,int) 如有需要也可以重载onOpen (SQLiteDatabase), 这个类可以在数据库未创建时自动创建数据库,如果已有数据库则可以打开。

它提供了两个方法getReadableDatabase() 和getWriteableDatabase() 来取得SQLiteDatabase数据库对象,此时 SQLiteOpenHelper 会根据需要创建onCreate 或升级onUpdate 数据库,如果数据库已存在,则打开对应的数据库。 尽管是两个方法,通常两个方法返回时是同一个数据库对象,除非在出现问题时(如磁盘空间满)此时getReadableDatabase() 可能返回只读数据库对象。

ToDoDBAdapter 的open 方法首先是试图获取一个可读写的数据库对象,如果不成功,则再试图取得一个只读类型数据库。

 

Android Studio 使用插件Database Navigation 连接 sqlite数据库 Database Navigation 是一款在 Android Studio 开发环境中非常实用的插件,它主要致力于帮助开发者更便捷、高效地管理和操作数据库,尤其是在 Android 项目涉及到数据库相关开发工作时,能够提升开发体验与效率。 阅读详情

相关推荐

Android——SQLite数据库使用详解,安卓开发面试基础

设置按钮边框填充颜色

2401_84002771的博客 1255

android sqlite 数据库创建,Android下创建一个SQLite数据库(示例代码)

数据库:SQLite(轻量级,嵌入式的数据库)大量的相似结构的数据的储存,快速的查询。特殊的文件(按照一定的格式生成)数据库的创建创建文件1.声明文件对象,文件是不会被创建出来的。File file = new File("文件名称");2.写文件(文件才会被创建出来)FileOutputStream fos = new FileOutputStream(file);fos.write("hdah...

weixin_32516271的博客 1451

安卓db数据库查看工具——快速管理与分析SQLite数据库

SQLite 是 Android 内置的轻量级关系型数据库管理系统,为 Android 应用提供了一种高效、便捷的数据持久化方案。与传统的关系型数据库不同,SQLite 将数据库存储在文件系统中的单一文件内,从而简化了数据库的部署和管理。SQLite 支持标准的 SQL 语言,允许在没有服务器进程的情况下进行数据库操作,这使得它非常适合于资源有限的移动设备环境。在 Android 应用开发中,SQLite 数据库常用于本地数据存储、用户个性化设置记录以及应用内缓存。

weixin_32869687的博客 1946

SQLite数据库的安装和使用

sqlite、数据库

Good_go的博客 9714

单精度浮点数存储、双精度浮点数存储

单精度浮点数存储、双精度浮点数存储

fancynthia的博客 1322

FPGA新手必看:XC7Z020最小系统搭建全攻略(附原理图解析)

本文为FPGA新手提供了XC7Z020最小系统搭建的完整实战指南。文章详细解析了电源架构、时钟复位、配置调试等关键硬件电路设计,并重点剖析了外围电路与端口引脚的连接要点及常见陷阱,帮助读者从零开始构建稳定可靠的开发平台。

weixin_29189377的博客 360

Android之SQLite数据库使用

SQLite是Android系统集成的一个轻量级的数据库。Android提供了SQLiteDatabase代表一个数据库(底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQLiteDatabase对象,接下来可通过SQLiteDatabase对象来管理、操作数据库了。

qq_38056514的博客 7382

模型性能评估之 Friedman 检验与 Nemenyi 后续检验

前言 当我们提出一种算法,需要知道我们的算法和现在已有的算法相比,性能是否更优的时候,就需要用到模型性能评估的方法。本篇博客介绍一种模型性能评估的方法:Friedman 检验与 Nemenyi 后续检验。 该方法的特点是:可以进行多个算法的比较。下面看看具体的使用: 具体使用 1. 计算序值 假定我们用 D1D_1D1​、D2D_2D2​ 、D3D_3D3​ 和 D4D_4D4​ 四个数据集对算法 AAA、BBB、CCC 进行比较。首先需要得到每个算法在每个数据集上的测试结果,可以是准确率,也可以是均方误差

蕾欧娜与26的博客 1万+

Android studio 连接SQLite数据库 +创建数据库+创建数据库表

Android studio 连接使用数据库 SQLite 傻瓜式教程 详细教程 有图有解释 再说学不废 那就回家放牛吧(再提醒你别把牛放丢啦)

hjjshua的博客 7万+

Synares病毒实战:如何手动清除C盘隐藏的Synaptics.exe(附资源修复脚本)

本文详细介绍了Synares感染型病毒的手动清除方法,该病毒伪装成Synaptics触摸板驱动,感染EXE和XLSX文件。文章提供了从病毒行为分析、母体清除到被感染文件修复的全流程指南,并附有实用的资源修复脚本和防御加固方案,帮助用户彻底清除这一顽固病毒。

lg888的博客 2369

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

Android开发中你是怎么查看sqlite数据库的

Android内置了sqlite数据库,我们在Android开发中想看自己的应用中sqlite数据库或者想查看别的应用数据库表中都有哪些内容的时候,老铁们,你们都是怎么操作的呢? 下面介绍几种比较通用的查看数据库的方式。 1. 使用Android Studio中的插件查看数据库,例如SQLScout。 安装好SQLScout插件之后,在View → Tool Windows → 可以找到 SQLite Explorer 我们想查看某个应用的数据库文件,怎么操作呢? 应用数据库文件目录 da

github_2011的博客 3万+

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1899

查看安卓sqlite数据库工具:Android-Debug-Database

简要介绍 安卓开发过程中,有时需要查看sqlite数据库,核对数据.本文介绍Android-Debug-Database,非常好用. github地址:https://github.com/amitshekhariitbhu/Android-Debug-Database 功能: 支持查看手机该app的数据库和shared preference. 支持修改数据库和shared preferenc...

蓝不蓝编程 1525

Wsl/InstallDistro/Service/RegisterDistro/CreateVm/HCS/E_INVALIDARG

摘要:安装WSL2时遇到E_INVALIDARG错误(多核CPU问题),可通过创建.wslconfig配置文件解决。配置内容包括:渐进式内存回收、自动代理、模拟虚拟系统调用、限制内存为4GB和处理器核心数为4。需确保已启用虚拟机平台和Linux子系统功能。 (98字)

猿小白的博客 1049

CKA-CN考试之路----15

这题和前面的那题类似.他让kube-scheduler必须满足4个CPU,我们刚才也看了,单个节点只有2个CPU。编辑/etc/kubernetes/manifests/kube-scheduler.yaml看下。根据报错信息来看 https://11.0.1.111:6443/api?查看etcd状态,是正常的.并且对本机的2379和11.0.1.111的2379监听。这里我们改成了剩余可用的10%,保存退出后可以看到。第一次退出root用户,第二次退回到初始节点。

Q先生 214

Android Studio如何查看自己创建的SQLite数据库

Android Studio如何查看自己创建的SQLite数据库 在学习安卓开发的时候,有时候需要建立一个SQLite数据库,在创建完之后,想要查看的时候你不知道在哪里找,并且有时候找到了也不知道如何查看,现在就让我们来了解一下如何找到并查看安卓里的SQLite数据库,效果如下 下面开始操作 一. 找到SQLite数据库 1.如下图所示找到设备的文件 2.找到对应文件,路径为 /data/data/com.example.fileoperation/databases/test.db 3.现在已经找到它

qq_48736958的博客 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

安卓数据库SQLite

安卓数据库SQLite

似霰的博客 7984

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

安卓开发之SQlite数据库

首先送各位有缘看到这篇文章的朋友们一句话:努力,总会有收获! 下面开始正题: SQlite数据库是一个轻量级的数据库,被用在嵌入式设备上,2019年6月还在流行的两大移动终端操作系统,Android和ios都支持这款数据库。 下面说一下怎么在安卓开发中操作sqlite数据库。 1.数据库的创建和更新 谷歌提供的api中有一个类叫做SQLiteOpenHelper,我们只需继承此类写出一个...

Ahacker_L的博客 1159

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

安卓开发之数据库的创建与删除

安卓开发中数据库是很重要的模块,本文简单介绍数据库的创建与删除,并展示如何查找数据库的位置,这个位置,我一开始挺懵,后面看提示找到的。

qq_54122113的博客 1819
上一篇: Android NFC 开发教程(3): Mifare Tag 读写示例
下一篇: 如何使Android应用开机时自动启动
引路蜂
博客等级 码龄16年 3122粉丝 711原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值