日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

查询设计

發布時間:2024/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查询设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 需求是這樣的,一個業務模塊有三個TAB頁,分別為簡單查詢、高級查詢、導出。

??? 簡單查詢:幾個常用的、固定的條件的查詢;

??? 高級查詢:用戶可編輯條件的個數,以及條件之間是與、或的關系;

??? 導出:根據用戶導出的結果,選擇開始、結束記錄號進行導出,當然可以導出txt或者excel

??

??? 結果列有根據列名排序、記錄導出的功能,所以要記錄查詢條件(queryCondition),即把查詢條件有記錄到request中,排序、導出時就不在構建查詢條件,當然這樣也有不足,就是依賴于查詢條件(queryCondition)這個字符串,而沒有在查詢結果列表中把查詢的條件解析開來,用戶看不到他上次輸的條件,比較失敗.但記錄了查詢條件,可以做一些重復下載的操作,這個設計還是很好的。

??? 由于查詢條件(queryCondition)有時會保存到DB中,為了安全,在往request里set之前加密,

queryCondition = new String(Base64.encodeBase64(queryCondition.getBytes(), false));

?? 取出時解密:

queryCondition = (String) dynaBean.get("queryCondition");queryCondition = new String(Base64.decodeBase64(queryCondition.getBytes()));

?

加密后的串在URL作為參數傳遞時有時候會有因為有特殊字符而報錯,這時用javascript提供的URI編碼就可以了,在服務器端直接就可以得到完整的數據。

??

encodeURIComponent('${queryCondition}')

?

?下面是根據一個最大值,最小值、查詢條件取記錄的SQL

<select id="getExportTxtDate" parameterClass="java.util.Map"resultClass="magazineBean" remapResults="true">SELECT * FROM ( SELECT list.*, rownum as RNUM FROM (select * from (select b.id as id ,a.CorpID as corpID ,a.CORP_PROVINCENO as provinceNo ,a.Corp_chineseName as chineseName ,b.cn as cn,b.issn as issn,c.Corp_chineseName as directorCorpName,a.Corp_sponsorCorp as sponsorCorp,b.proprieter as proprieter,b.editor as editor,f.Corp_linkTel as linkTel,f.Corp_fax as fax,b.Post_id as postId,e.issue_way as issueWay,b.Size_num as sizeNum ,b.issued_period as issuedPeriod,f.Corp_address as address,f.Corp_postCode as postCode,b.Year_price as yearPrice ,b.Create_date as createMagazineDate,a.Corp_tenet as tenet,a.Corp_englishName as englishName ,a.Corp_legalPerson as legalPerson,a.Corp_chargeMan as chargeMan,a.Corp_createDate as createDate,a.Corp_divide as divide,d.AreaCode_all as areaCodeAll from Corp_info a,Corp_Magazine b,Corp_info c,Corp_AreaCode d,Corp_issue_way e, (select * from Corp_linkPersonInfo where id in (select max(id) from Corp_linkPersonInfo group by corpID)) f where a.CorpID=b.CorpID and a.Corp_directorCorpID=c.CorpID(+) and a.Corp_provinceNO=d.id(+) and b.issue_way_id=e.id(+)and a.CorpID=f.CorpID(+) ) where 1=1 <isNotEmpty prepend="AND" property="queryCondition">( $queryCondition$ ) </isNotEmpty>ORDER BY $orderColumn$ $orderType$ ) list WHERE ROWNUM &lt;= #maxRow# ) WHERE RNUM &gt;= #minRow#

?

總結

以上是生活随笔為你收集整理的查询设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。