任何一种开发,都不可避免地需要和数据库打交道。在Flutter中,使用的数据库是SQLite3,并且Flutter提供了一套接口来使用它。
今天在这里只说这套接口中的 Database中的一个方法,rawQuery
这个方法调用sql语句,返回一个List类型的数据集。
首先List对应的是返回的整个数据集(Query)。
其次,List中的每一项,都是一个Map类型的变量,对应的是这个Query中的一条记录(如果存在多条记录)。
查看Dart语言中对于List和Map的定义,结合实际查询得到的返回值,确认内容如下:
[{id: 8874CD87-AFB9-4FC1-91BC-D59492E7E063, page: 1, topic: , mainbody: , create_datetime: 2020-10-07 11:32:46, first_datetime: null, last_datetime: null}]
List对应记录集[]中的所有内容
Map对应单条记录{}中的所有内容
要访问查询得到的记录集,可以使用for each来遍历list。
要访问记录集中的一个字段(已知名称)可以用Map['字段名']
看起来有点像json,对不对?
static Future getFirstEmptyPage(String noteBookName) async {
String newGuid = "";
List mQuery = [];
if ((_database != null) && (noteBookName != null)