和尚刚刚学习一下关于数据存储方面的小知识点,用sqflite对数据库进行基本操作。sqflite为三方pub通用的引入方式。和尚仅对数据库的基本操作进行学习整理。
集成方式
pubspec.yaml中添加sqflite: any;
在相应的.dart文件中添加引用import 'package:sqflite/sqflite.dart';
根据需求对数据存储进行具体的SQL操作,如下:
SQL 操作
1. 创建数据库
sqflite创建数据库时优先创建一个路径,用来存储数据库。注:对于数据库的操作都是耗时操作,都要通过async和await异步处理。
2. 创建数据表
借助db.execute来创建一张数据表,跟普通的SQL方式相同。
3. 【增】插入数据
借助rawInsert或db.insert对数据库表数据进行插入。根本上都是通过insert into方式插入数据表。
4. 【查】查询数据
借助rawQuery或db.select对数据库表信息进行查询,是操作最灵活对部分,配合各种SQL语句进行处理。
5. 【删】删除数据
借助rawDelete或db.delete对数据库表进行数据删除,和尚测试删除id = 0和1的对应数据,sqflite内部已处理好,若数据库表不存在也不会报异常。
6. 【改】更新数据
借助rawUpdate或db.update对数据库表进行内容数据更新,可根据需求变更固定字段或整条数据。
7. 删除数据表
和尚刚接触数据库,没有找到直接删除表的方式,没有类似drop的方法,如果有哪位大神了解请多多指导。注:若用如下方式只会删除当前表中所有数据而不会删除表。
8. 删除数据库
删除数据库与创建数据库相对应,直接对路径进行操作。
注意事项
建议在对数据库表进行增删改查前优先判断数据库是否存在,可统一封装方法以降低异常;
对于数据库表的增删改查,和尚使用了两种方式:一种是直接db.增删改查,另一种是db.transaction后对回调raw+增删改查,两种的区别是,第一种使用更便捷,可直接修改整条数据;第二种使用更灵活,可对部分数据字段进行调整,可以看图例中的【更新】结果;
在使用db.transaction对数据库表进行增删改查时要注意SQL语句的完整性,包括传递String类型参数时要加引号,执行的是一个完整的SQL语句。
数据库的操作灵活多样,和尚刚刚尝试,本篇仅记录一下基本的使用情况,对于更多灵活的方法会继续尝试整理,有问题的地方请大家多多指导。以下是和尚公众号,欢迎前来吐槽~
领取专属 10元无门槛券
私享最新 技术干货