The important thing in life is to have a great aim , and the determination

          常用鏈接

          統計

          IT技術鏈接

          保險相關

          友情鏈接

          基金知識

          生活相關

          最新評論

          DAO 設計2、查詢方式的設計

          創建了一個 DAO 類用來做所有的事情,包括查詢。查詢方法如下:

          java 代碼
          1. public?List?query(Class?clazz,?String?sql,?List?params)?throws?DAOException;??

          第一個參數是用來接受封裝的類。
          有時候僅查詢一個字段,根本不用封裝:
          java 代碼
          1. public?List?query(String?sql,?List?params)?throws?DAOException;?

          如果封裝,就要考慮查詢結果字段到對象屬性的映射關系。根據公司的數據庫設計規范,
          單詞之間用下劃線連起來。所以簡單的替換一下就可以了。比如 USER_NAME 字段就映
          射到 userName 屬性。

          如果查詢結果中的字段有多,那這個字段的值就只好丟棄;如果類的屬性有多,也不會給
          它賦值。


          分頁查詢。有時候會用到分頁查詢,所以添加了一個方法:
          java 代碼
          1. public?Page?queryPage(Class?clazz,?String?sql,?List?params,?int?pageIndex,?int?pageSize)??
          2. ????????????throws?DAOException;??

          Page 對象除了包含查詢結果外還有 totalNum 屬性,表示查詢總結果數。




          表格封裝的查詢。有時候查詢語句是動態生成的,沒法確定查詢結果的字段個數,用類來
          封裝顯然不合適。于是定義了一個通用的表格結構用來封裝,并添加了 queryTable() 方法:
          java 代碼
          ?
          1. public?DataTable?queryTable(String?sql)?throws?DAOException;???
          2. public?DataTable?queryTable(String?sql,?List?params,?int?pageIndex,?int?pageSize)?????
          3. ???????????????? throws?DAOException;???

          DataTable 對象包含的其實就是一堆 HashMap。不過它同 Page 一樣有一個查詢總結果數,
          而且添加了一些方法方便提取數據。這種查詢的使用方式如下:
          java 代碼
          ?
          1. DAO?dao?=?DAO.getDAO(SOURCE_NAME);??
          2. DataTable?table?=?dao.queryTable("select?*?from?tt_test");??
          3. assertEquals(6,?table.getColumns());??
          4. Map?row?=?table.query("name",?"張三豐");?//?在查詢結果中搜索??
          5. assertNotNull(row);??




          靜態字段作為映射關系配置。有些字典表或配置表,一開始就被全部讀入并緩存起來。為
          了少寫代碼,DAO 提供將靜態字段 TN 作為表名來查詢的方式。如果類中存在 String 類型的
          靜態字段 TN,則可以使用這個方法:
          java 代碼
          ?
          1. public?List?query(Class?clazz)?throws?DAOException;?

          posted on 2007-03-15 23:23 鴻雁 閱讀(231) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 称多县| 彭泽县| 晋城| 新化县| 高陵县| 淅川县| 东台市| 岐山县| 任丘市| 南城县| 乌鲁木齐县| 和政县| 嫩江县| 竹溪县| 井研县| 鄂托克前旗| 梓潼县| 东兴市| 白朗县| 峨眉山市| 富民县| 谢通门县| 江津市| 明光市| 商南县| 龙州县| 郓城县| 双城市| 景宁| 三都| 曲靖市| 东阿县| 海林市| 昂仁县| 南汇区| 福贡县| 衡水市| 普定县| 镇安县| 酉阳| 禄劝|