剛進入乙個大型專案,框架用的是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...