當(dāng)柳上原的風(fēng)吹向天際的時(shí)候...

          真正的快樂來源于創(chuàng)造

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            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

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

          StringRowMapper

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

          當(dāng)只查詢一列時(shí),如select a from table,建議使用這個(gè)類。

          UserRowMapper

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

          當(dāng)需要從JDBCTemplate查詢到的鏈表中取出對象時(shí),建議仿照這個(gè)類制作自己的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函數(shù)。

           

          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就是一個(gè)包含字符串元素的鏈表,要取值對其進(jìn)行遍歷即可。

          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函數(shù)。

           

          第四部分:小結(jié)

          對數(shù)據(jù)庫進(jìn)行各種查詢是程序員的常見任務(wù)之一,如果能適當(dāng)運(yùn)用以上類,能減少代碼的重復(fù)程度及減輕他們的勞動強(qiáng)度。

          posted on 2012-02-29 10:34 何楊 閱讀(389) 評論(0)  編輯  收藏 所屬分類: Teambiz
          主站蜘蛛池模板: 吉林省| 清徐县| 平和县| 景德镇市| 宜兴市| 北海市| 志丹县| 侯马市| 浦北县| 唐河县| 遵义县| 南宁市| 绵阳市| 修文县| 潼关县| 出国| 沧源| 灵川县| 龙南县| 广宗县| 乐亭县| 竹北市| 普兰县| 东乡| 铜梁县| 资溪县| 松溪县| 日土县| 仙桃市| 阿尔山市| 油尖旺区| 九寨沟县| 勃利县| 昭觉县| 卓资县| 长白| 闽清县| 宁津县| 顺昌县| 凤阳县| 赣榆县|