通過json實現複雜sql結果集分頁

2021-08-31 19:26:40 字數 989 閱讀 1890

剛進入乙個大型專案,框架用的是ext+ajax+spring+hibernate。

但是由於業務邏輯複雜,經常出現列表查詢需要同時用到多個表的情況。

由於表關係複雜,使用hibernate開發會對組內開發進度造成較大影響。

針對此類情況,我封裝了一套方法給組內呼叫。原理是通過resultsetmetadata類獲取結果列的名稱生成jsonarray字串,返回給頁面呼叫。

dao層**如下:

// start,pagesize分別為頁面傳過來的值,此值不需要開發人員自己設定。

public static string getpagejson(string sql,int start,int pagesize)

int end = start+pagesize>count?count:start+pagesize;

int begin = start;

if (begin>count)elseelse if (md.getcolumntype(i)==types.date)

}else}}

array.put(obj1);

}obj.put("list", array);

}} catch (jsonexception e) catch (sqlexception e) catch (exception e) finally catch (sqlexception e)

}return obj.tostring();

}

返回值應為。

頁面是我封裝的ext分頁方法。將store、paging*******封裝到grid中。對於開發者,只要在grid中寫入sql中的別名和dataindex的值對應,並寫入呼叫相關屬性。呼叫時,就會將查詢引數以及分頁引數傳到後台,由開發者自己根據傳入查詢條件拼裝sql呼叫。

感覺上效能肯定有優化的餘地,bug也是必然存在的。比如如果sql語句中如count(*)無別名,則會報錯。

通過SQL實現模糊查詢按結果的匹配度排序

前幾天接到乙個新的需求 在模糊查詢的情況下實現,查詢結果按照精準度高低進行排序展示 即 結果與查詢關鍵字完全一致的優先順序最高,其次按照查詢結果中關鍵字出現的詞頻從高到低排序。之前有接觸過搜尋一般都有專門的搜尋框架來做搜尋的事情,比如 現在只在乙個功能的模糊查詢上來做 研究了一下,還是可以實現的,例...

SQL通過PIVOT UNPIVOT實現行列轉換

在sqlserver 2005中,使用關鍵字pivot unpivot,可以很容易的實現行列轉換的需求。現在將通過兩個簡單的例子詳細講解pivot unpivot的用法。一 pivot的用法 首先建立測試表,然後插入測試資料 create table test id int,name varchar...

Sphinx如何實現複雜Sql查詢

sphinx可以實現複雜的sql語句,具體操作如下 比如,要實現的sql語句為 select from new notes where status 100 tmp edit status 1 or status 200 or status 800 and title like 測試 and tmp...