當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

           

           

           

           

           

           

          Teambiz中三種特殊RowMapper的使用

           

           

           

           

           

           

          作者:何楊

          撰寫日期:2012年2月25日

          版本:1.00

          更新日期:

           

           

           

          第一部分:功能說明

          針對特殊目的的查詢,TeamBiz提供了一系列的RowMapper類以減輕程序員的勞動。

          第二部分:核心組件

          名稱

          路徑

          說明

          IntegerRowMapper

          teambiz\src\com\ibm\heyang\dao\rowmapper\IntegerRowMapper.java

          只需進行數量查詢時,如select count(*) from tb,明確只會返回一行一列,這時建議使用這個類。

          StringRowMapper

          teambiz\src\com\ibm\heyang\dao\rowmapper\StringRowMapper.java

          當只查詢一列時,如select a from table,建議使用這個類。

          UserRowMapper

          eambiz\src\com\ibm\heyang\dao\rowmapper\UserRowMapper.java

          當需要從JDBCTemplate查詢到的鏈表中取出對象時,建議仿照這個類制作自己的RowMapper類

           

          第三部分:各種RowMapper類的具體使用

          1. IntegerRowMapper。

          StringBuilder sb=new StringBuilder();

          sb.append("    select ");

          sb.append("        count(*) as recordcount");

          sb.append("    from teambiz_menu");

          String sql=sb.toString();

          List<?> ls=this.getJdbcTemplate().query(sql, new IntegerRowMapper());

          Integer count=(Integer)(ls.get(0));

          以上代碼路徑:teambiz\src\com\ibm\heyang\dao\MenuDao.java中isNoMenu函數。

           

          2. StringRowMapper

          StringBuilder sb=new StringBuilder();

          sb.append("    select");

          sb.append("        t01.group_name");

          sb.append("    from");

          sb.append("        sys_group");

          sb.append("        t01,");

          sb.append("        sys_user");

          sb.append("        t02");

          sb.append("    where");

          sb.append("        t01.groupid=t02.groupid");

          sb.append("        and");

          sb.append("        t02.userid="+userid+"");

          String sql=sb.toString();

           

          // 查詢

          List<?> ls = this.getJdbcTemplate().query(sql,new StringRowMapper());

          最后得到的ls就是一個包含字符串元素的鏈表,要取值對其進行遍歷即可。

          3. UserRowMapper的使用示例

          StringBuilder sb=new StringBuilder();

          sb.append("    select ");

          sb.append("          ID, ");

          sb.append("          name, ");

          sb.append("          email, ");

          sb.append("          pswd, ");

          sb.append("          groupName, ");

          sb.append("          companyName,");

          sb.append("          level");

          sb.append("    from teambiz_user");

          sb.append("    where name='"+name+"' and ");

          sb.append("          pswd='"+pswd+"' ");

          String sql=sb.toString();

           

          List<?> ls = this.getJdbcTemplate().query(sql, (new UserRowMapper()));

           

          if(ls.size()==1){

                      return (User)ls.get(0);

          }else{

                      throw new Exception("用戶名或密碼錯誤!");

          }

          以上代碼路徑:teambiz\src\com\ibm\heyang\dao\UserDao.java中的getUserByNamePswd函數。

           

          第四部分:小結

          對數據庫進行各種查詢是程序員的常見任務之一,如果能適當運用以上類,能減少代碼的重復程度及減輕他們的勞動強度。

          posted on 2012-02-29 10:34 何楊 閱讀(390) 評論(0)  編輯  收藏 所屬分類: Teambiz
          主站蜘蛛池模板: 三河市| 仪陇县| 五家渠市| 平陆县| 固安县| 囊谦县| 海伦市| 泸水县| 伊吾县| 宜丰县| 满城县| 大名县| 大洼县| 芮城县| 达拉特旗| 赤峰市| 台南县| 秀山| 保山市| 万安县| 洮南市| 鄯善县| 彭山县| 建德市| 墨江| 盐津县| 大丰市| 察隅县| 海阳市| 广南县| 九江市| 巧家县| 东海县| 罗田县| 昌吉市| 潜山县| 桓台县| 双流县| 英德市| 景泰县| 承德市|