安卓用SQLite数据库存储数据

什么是SQLite?

SQLite是安卓中的轻量级内置数据库,不需要设置用户名和密码就可以使用。资源占用较少,运算速度也比较快。

SQLite支持:null(空)、integer(整形)、real(小数)、text(文本)|String(文本)|varchar(文本)、blob(二进制)这5种数据类型。

如何使用SQLite数据库?

在这之前先介绍一下SQLiteOpenHelper类。该类是安卓为了让用户方便管理数据库而提供的一个数据库帮助类。我们需要借助这个类来实现对数据的创建(也就是用户需要自己创建一个类来继承SQLiteOpenHelper类。比如自己创建类:MyDBOpenHelper)。

第一步:创建一个MyDBOpenHelper类继承SQLiteOpenHelper类。

1.在安卓目录模式下,找到包该APP的包,接着右键选择新建,接着创建一个包(比如:DB)。

2.选中DB包,接着右击选择新建类,创建一个 MyDBOpenHelper类。

3.在MyDBOpenHelper类中写继承SQLiteOpenHelper类。

4.将鼠标放在红色波浪线上,按Alt+Enter组合键解决该报错问题(由于SQLiteOpenHelper类是抽象类,所以需要在该类添加两个抽象方法)。

5.将鼠标继续放在红色波浪线上,按Alt+Enter组合键解决(添加帮助类的构造方法,选择参数少的第一种)。

该种构造方法的参数:参数1为Context;参数2为数据库名;参数3为在查询数据的时候返回自定义的Cursor,一般都是传入null;参数4为数据库版本号。

二、定义数据库名称和数据库版本号。

在实际的过程中只保留第一个参数,后3个参数删除,并定义数据库名称和版本,修改一下代码即可,具体如下:

这里定义了数据库名为:student.db,数据库版本为1。

在安卓中数据库的保存位置在:/data/data/工程的包名/databases/

三、定义建表语句。(创建数据表)

1.找到onCreate方法

2.在onCreate方法中写创建数据表的语句。

在此方法中调用SQLiteDatabase的execSQL()方法去执行创建数据表。

如创建学生信息表stu_info 表中包含字段名(列名):学号 姓名 性别

sql 复制代码
sqLiteDatabase.execSQL("create table stu_info(id INTEGER primary key autoincrement,sno varchar(10),name varchar(10),sex varchar(10))");
四、添加数据(insert方法)。

这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。

大致分为六步:

复制代码
//1.定义数据库帮助类对象
复制代码
//2.定义一个可以操作数据库的对象
复制代码
//3.实例化数据库帮助类
复制代码
//4.打开数据库的写权限
复制代码
//5.创建一个Content Values对象并通过put方法来保存一行数据(其中put方法两个参数:字段名,值)
复制代码
//6.使用insert方法实现添加数据

inset()方法语法:

insert("表名","在没指定添加数据的情况下将为空的列自动设置为NULL","Content Values对象")

其中Content Values对象用来保存表中一行数据。第二个参数一般用不到设置为null即可。

综上所述,可以以一下代码来表示这六步(这里是在主页面类):

上面在主页面的代码表示一运行APP就会向数据库中添加信息。put方法中写的字段的值是从控件中获取的(这里没有写控件所以会报错)。具体使用方法可以根据这个类推。比如点击一个按钮时执行添加向数据库中添加数据。

五、删除数据(delete方法)。

这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。

大致分为五步:

复制代码
//1.定义数据库帮助类对象
复制代码
//2.定义一个可以操作数据库的对象
复制代码
//3.实例化数据库帮助类
复制代码
//4.打开数据库的写权限
复制代码
//5.使用delete方法实现删除数据

delete()方法语法:

delete("表名","条件=?","?占位符所代表的条件的取值")

例如删除id字段等于12的一行数据:delete("表名","id=?",new String[]{"12"})

综上所述,可以以一下代码来表示这五步(这里是在主页面类):

上面在主页面的代码表示一运行APP就会删除数据库中id=12的数据。具体使用方法可以根据这个类推。比如点击一个按钮时删除数据。或者这个条件的值(这里指12)可以来源于输入框控件等。

六、查询数据(rawQuery方法)。

这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。

大致分为五步:

复制代码
//1.定义数据库帮助类对象
复制代码
//2.定义一个可以操作数据库的对象
复制代码
//3.实例化数据库帮助类
复制代码
//4.打开数据库的读权限
复制代码
//5.使用rawQuery方法实现查询数据并通过moveToNext()遍历结果后取出数据,最后通过set方式给用于显示查询结果的控件赋值显示出来。

rawQuery方法语法:

rawQuery("查询语句......where=?","?占位符所代表的条件的取值")

例如查询id字段等于12的一行数据:rawQuery("select * from stu_info where id=?",new String[]{"12"})

综上所述,可以以一下代码来表示这五步(这里是在主页面类):

上面在主页面的代码表示一运行APP就查询数据库中id=12的数据。具体使用方法可以根据这个类推。比如点击一个按钮时查询数据。或者这个条件的值(这里指12)可以来源于输入框控件等。(红色波浪线报错用Alt+Enter解决即可)

七、修改数据(update方法)。

这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。

大致分为五步:

复制代码
//1.定义数据库帮助类对象
复制代码
//2.定义一个可以操作数据库的对象
复制代码
//3.实例化数据库帮助类
复制代码
//4.打开数据库的写权限
复制代码
//5.创建一个Content Values对象并通过put方法来保存一行数据(其中put方法两个参数:字段名,值)
复制代码
//6.使用updata方法实现添加数据

updata方法语法:

updata("表名",Content Values对象,"条件=?","?占位符所代表的条件的取值")

例如修改name字段等于张三的一行数据:updata("表名",Content Values对象,"name=?",new String[]{"张三"})

综上所述,可以以一下代码来表示这六步(这里是在主页面类):

上面在主页面的代码表示一运行APP就修改数据库中name为张三的性别为控件获取来的值。具体使用方法可以根据这个类推。比如点击一个按钮时修改数据。

相关推荐
松涛和鸣3 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
likangbinlxa3 小时前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
r i c k4 小时前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦4 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL5 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·5 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德5 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫5 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i5 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.6 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql