rawquery 没扎到返回什么_Flutter之踩坑的日子(RawQuery的使用)
任何一種開發(fā),都不可避免地需要和數(shù)據(jù)庫打交道。在Flutter中,使用的數(shù)據(jù)庫是SQLite3,并且Flutter提供了一套接口來使用它。
今天在這里只說這套接口中的 Database中的一個(gè)方法,rawQuery
這個(gè)方法調(diào)用sql語句,返回一個(gè)List類型的數(shù)據(jù)集。
首先List對(duì)應(yīng)的是返回的整個(gè)數(shù)據(jù)集(Query)。
其次,List中的每一項(xiàng),都是一個(gè)Map類型的變量,對(duì)應(yīng)的是這個(gè)Query中的一條記錄(如果存在多條記錄)。
查看Dart語言中對(duì)于List和Map的定義,結(jié)合實(shí)際查詢得到的返回值,確認(rèn)內(nèi)容如下:
[{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對(duì)應(yīng)記錄集[]中的所有內(nèi)容
Map對(duì)應(yīng)單條記錄{}中的所有內(nèi)容
要訪問查詢得到的記錄集,可以使用for each來遍歷list。
要訪問記錄集中的一個(gè)字段(已知名稱)可以用Map['字段名']
看起來有點(diǎn)像json,對(duì)不對(duì)?
static Future getFirstEmptyPage(String noteBookName) async {
String newGuid = "";
List mQuery = [];
if ((_database != null) && (noteBookName != null)) {
String sql =
"select * from$noteBookNamewhere first_datetime isnull order by create_datetime limit 0,1";
print("Show getFirstEmptyPage sql :");
print(sql);
mQuery = await _database.rawQuery(sql);
print("Data in mQuery is :");
print(mQuery);
Map mt = new Map();
mt = mQuery[0];
print("Data id is : " + mt['id']);
newGuid = mt["id"];
}
return newGuid;
}
千里筆記測(cè)試版的GIT地址?github.com
總結(jié)
以上是生活随笔為你收集整理的rawquery 没扎到返回什么_Flutter之踩坑的日子(RawQuery的使用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快手极速版截图分享在哪
- 下一篇: scrapy 搜索关键字_Scrapy