鍍金池/ 問答/Java  數(shù)據(jù)庫/ pageHelper多表的分頁查詢。IO開銷太大

pageHelper多表的分頁查詢。IO開銷太大

之前通過pagehelper寫單表的分頁查詢寫的很開心?,F(xiàn)在要寫一個奪標(就比如2張表把)
如果自己寫sql語句,就不能用 Criteria 東西了,如果先查詢主表,在查詢另一張附表(用collection也一樣),連接數(shù)據(jù)庫又會很頻繁,有什么好的解決思路碼?因為本來自己寫sql語句關(guān)聯(lián)查詢至訪問一次數(shù)據(jù)庫。先查主表,在查附表分頁為10就會訪問10次,分頁為20就會訪問20次了

回答
編輯回答
夏木

根據(jù)你的問題的話,解決方式:

  1. Mybatis PageHelper支持奪標查詢,完全可以直接使用
  2. 如果題主又想單表查詢,又想一次查詢的話,不妨這樣試一下:

    1. 查詢第一張主表獲取主表數(shù)據(jù),并將主表id篩選出來留作備用。
    2. 查詢第二張表,通過Criteria條件將主表id通過條件添加進去。
    3. 通過java自身業(yè)務(wù)邏輯將兩個表中的數(shù)據(jù)連接到一個Bo類中。
值得注意的地方
由于Mybatis中的存儲數(shù)據(jù)集合是一TheadLocal進行存儲的,注意startPage方法和獲取PageList位置,不然有可能獲取到錯誤的數(shù)據(jù)集合
2017年6月27日 20:48