開發中遇到的乙個關於 SQL 語句執行的問題

2021-07-04 08:44:05 字數 1033 閱讀 6628

今天在開發的時候,寫了兩個方法:

方案一:

1、先獲取省份,根據省份 id 去資料庫查詢這個省份有多少城市,這樣後台就會執行多條 sql 語句(查詢所有省份一條,根據省份查詢城市,有多少省份就會發出多少查詢語句,這樣效能開銷比較大);

public listgetprovincewithcitylist()

long end = system.currenttimemillis();

system.out

.println("實現方案1計時\t" + end);

system.out

.println("耗時:" + (end - start));

return provincewithcitylist;

}

2、方案二(獲取所有的省份和城市資訊)

步驟1:獲取所有省份的資訊

(重點:然後把所有的省份資訊放在乙個 map 裡面)

步驟2:獲取所有的城市資訊

步驟3:遍歷所有的城市資訊,如果城市資訊裡面的 province_id 在步驟1 的 map 裡,再在裡面新增。

**實現:

public listgetprovincewithcitylist()

for (city city : citylist)

provincewithcity provincewithcity = map.get(provinceid);

provincewithcity.cities

.add(city);

}long end = system.currenttimemillis();

system.out

.println("實現方案1計時\t" + end);

system.out

.println("耗時:" + (end - start));

return provincewithcitylist;

}

經測試,方案二明顯效率高,因為和資料庫的互動少。

乙個不會的SQL語句

12.有兩個表a 和b 均有key 和value 兩個字段,如果b 的key 在a 中也有,就把b 的value 換為a 中對應的value 這道題的sql 語句怎麼寫?update b set value select value from awhere a.key b.key where exi...

乙個神奇的SQL語句

題目是這樣的 分別往這兩張表中新增3條資料。查詢營業額最高商家的商品總價與營業額最低商家的商品總價差是多少 5分 create view vm2 as select price limit num as total money b.id from business b,goods g where b...

乙個關於SQL語句的練習題目

有這樣乙個表。id name age 1 to 12 2 thow 25 3 rwo 23 4 soa 14 5 flo 20 6 tie 20 7 fm 18 8 soa 20 9 flo 16 10 tie 26 11 soa 23 12 rwo 17 問題1 按名字重排,若名字有重複的,則取年...