nutz笔记(一)

来源:互联网 发布:中国的社交网络有哪些 编辑:程序博客网 时间:2024/06/16 18:37


public static Map<Long, ShopInfoModel.ShopCategory> getShopCategoryLst(long groupID,                                                                    Collection shops) {    //1.组装脚本语句    StringBuilder sb = new StringBuilder();    sb.append("select c.shopCategoryID,c.shopCategoryName,c.shopID");    sb.append(" from tbl_shop_base_info_class c where c.groupID=" + groupID);    sb.append(" and c.action in (0,1) and c.shopID!=0");    String shopInCondition = Utils.parseInCondition(shops);    if (shopInCondition != null) {      sb.append(" and c.shopID IN ").append(shopInCondition);    }        //2.创建sql对象    Sql sql = Sqls.create(sb.toString());    logger.debug("getShopCategoryLst sql:" + sql.toString());    //3.设置回调函数    sql.setCallback(new SqlCallback() {      @Override      public Map<Long, ShopInfoModel.ShopCategory> invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {        Map<Long, ShopInfoModel.ShopCategory> map = new HashMap<Long, ShopInfoModel.ShopCategory>();        Set<Long> groupIDs = new HashSet<Long>();        while(rs.next()) {          long shopID = rs.getLong("shopID");          ShopInfoModel.ShopCategory shopCategory = new ShopInfoModel.ShopCategory(rs.getLong("shopID"), rs.getLong("shopCategoryID"), rs.getString("shopCategoryName"));          map.put(shopID, shopCategory);          groupIDs.add(rs.getLong("shopCategoryID"));        }        return map;      }    });        //4.创建dao对象(NUTZ框架支持)    Dao dao = HualalaReportService.getApp().getDaoMananger().getDaoByDbName(Constants.DB_SHOP);    //5.执行脚本    dao.execute(sql);    //6.封装对象    return sql.getObject(Map.class);  }

入职第二天,熟悉项目,无意中看到上面的代码,这种持久层框架,我竟然没接触过。。。

今天,整理下,这个框架在持久层的使用流程:

大致分为六步:

1.组装脚本语句

2.创建sql对象

3.设置回调函数

4.创建dao对象(NUTZ的DAO对象)

5.执行脚本

6.封装对象

其中:步骤(6)封装的对象类型与步骤(3)中返回的数据类型保持一致,如果是查询结果是list类型,返回数据,可使用sql.getlist(T.class)


原创粉丝点击