在之前學(xué)習(xí)中是掰,我們已經(jīng)學(xué)習(xí)了如何使用
jaguar_query_postgres
對實體類進行綁定生成一個bean
類雇盖,使用該bean
類對數(shù)據(jù)庫進行操作,那么糟需,如果是涉及到多個表進行查詢,就顯得有點疲軟了,所以今天我們來學(xué)習(xí)一下如何使用sql語句進行查詢!
1. 介紹
使用
jaguar_query_postgres
其實是基于jaguar_postgres
庫進行封裝的,所以橘荠,我們只要是集成了jaguar_query_postgres
都可以使用SQL語句進行查詢
2. 使用SQl
我們通過對
PgAdapter
這個類的進一步追逐幌衣,可以發(fā)現(xiàn)pg.PostgreSQLConnection
這個類矾削,通過PgAdapter.connection
去獲取,該類就是主要執(zhí)行SQL語句的豁护,可以使用pg.PostgreSQLConnection.execute(SQL)
去執(zhí)行哼凯,該方法是返回的是一個Future<int>
,我們來試一下吧
首先择镇,我們的數(shù)據(jù)庫中的_chat
表有一條數(shù)據(jù),現(xiàn)在我們通過SQL語句對他進行刪除
import 'package:jaguar_query_postgres/jaguar_query_postgres.dart';
final PgAdapter pgAdapter = new PgAdapter(
'rhymedb',
username: 'postgres',
password: '123456');
main() async{
await pgAdapter.connect();
int i=await pgAdapter.connection.execute("DELETE FROM _chat WHERE id='1' ");
print(i);
}
然后我們運行一下
可以看到挡逼,我們已經(jīng)成功的輸出了1
來看看數(shù)據(jù)庫
數(shù)據(jù)已經(jīng)被我刪除掉了
這里,我們來解釋一下腻豌,該
execute(SQL)
方法只能對數(shù)據(jù)庫進行增
家坎,刪
,改
吝梅,來了解一下虱疏,它還有兩個參數(shù)
-
Map<String, dynamic> substitutionValues
替代值,可替換SQL語句中的key到對應(yīng)的值,默認(rèn)為空 -
int timeoutInSeconds
超時時間苏携,單位為秒做瞪,默認(rèn)30秒
接下來,我們來了解一下如何使用查詢語句吧右冻,將通過SQl語句查詢到對應(yīng)的值出來装蓬,我們可以使用pgAdapter.connection.mappedResultsQuery(SQL)
方法
final PgAdapter pgAdapter = new PgAdapter(
'rhymedb',
username: 'postgres',
password: '123456');
main() async{
await pgAdapter.connect();
List<Map<String, Map<String, dynamic>>> map=await pgAdapter.connection.mappedResultsQuery('SELECT * FROM _chat');
print(map);
}
查詢到的是一個map數(shù)組,該數(shù)組可以通過窗口輸出纱扭,這里先添加一條數(shù)據(jù)牍帚,然后再查詢看一下
可以看到,輸出了一個map數(shù)據(jù)乳蛾,該數(shù)據(jù)是通過以表名作為一個鍵暗赶,然后我們再添加一條數(shù)據(jù)查詢看看
ok鄙币,很明顯,都是通過表明作為鍵蹂随,對應(yīng)的值作為值
很明顯的看到十嘿,這樣就實現(xiàn)了使用了SQL語句進行查詢了。
今天就到這里了
課后作業(yè):執(zhí)行一下多表查詢岳锁,多表更新
如果想繼續(xù)學(xué)習(xí)DartVM服務(wù)器開發(fā)绩衷,請關(guān)注我,學(xué)習(xí)更多騷操作浸锨!