此文為**:http://www.diybl.com/course/1_web/webjs/2007113/82989.htmlok!我們直接進入dao層:先看介面,發現與service介面層的方法並不相同,主要是由於service層有些方法是業務處理用,而不是用於資料處理,如createboard,updateboard,findboardsalltree,getboardpermission,getboardmasterpermission,isboardmaster,當然dao介面層也有一些方法是沒有的:findboardsneedcount,findboardsinidsfindboardsidbyparentidinuse等等,我們看其實現吧:
進入com.laoer.bbscs.boardhibernatedao中首先是一些字元常量:
private static final string loads_by_parentid_by_order = "from board where parentid = ? order by orders";
private static final string loads_all = "from board";
public static final string find_boards = new string[3];
public static final string load_next_order = "select max(orders) from board where parentid = ?";
private static final string load_ids_in_use = "select id from board where parentid = ? and usestat = 1";
我們看幾個重點的實現方法:
public list findboardsbyparentid(long pid)
其過載方法:
public list findboardsbyparentid(final long pid, final int usestat, final int hidden, final int ordertype)
if (hidden != -1)
if (ordertype != -1)
if (ordertype == constant.find_boards_by_mainpostnum)
if (ordertype == constant.find_boards_by_postnum)
}return c.list();
}});}
其中用到了條件查詢(criteria query),參考http://blog.sina.com.cn/u/4a5e7dc401000878 和http://hi.baidu.com/yaolihui/blog/item/7c77b58286a56792f703a663.html,而public list findboardidsbyparentid(final long pid, final int usestat, final int hidden, final int ordertype)採用了構造hql語句的方式來完成查詢!根據parentid預取得board序列:
public int getnextorder(long pid) else
} else
}public int getpostsumnum(final int mainorall, final int usestat, final int hidden)
if (mainorall == 1)
if (usestat != -1)
if (hidden != -1)
return c.list();
}});if (!list.isempty())
}return sum;
}public list findboardsinids(final list ids, final int usestat, final int hidden) else if (ids.isempty()) else
if (usestat != -1)
if (hidden != -1)
c.addorder(order.asc("orders"));
return c.list();
}});}
public list findboardsneedcount(final int usestat, final int hidden)
if (hidden != -1)
c.addorder(order.desc("mainpostnum"));
c.addorder(order.desc("postnum"));
return c.list();
}});}
public list findboardsbyparentid(final long pid, final int usestat, final int hidden)
if (hidden != -1)
return c.list();
}});}
public list findboardsidbyparentidinuse(long pid)
ok!分析完畢!當然,對於具體的方法是怎麼被用上的,要看web層了.
程式設計實現對乙個8bit資料的指定為的置零或置一操作
編碼實現以下功能的函式 功能 實現對乙個8bit的資料 unsigned char型別 的指定位 例如第n位 的置零或者置1操作,並保持其他位不變。void bit set unsigned char p data,unsigned char position,int flag 引數說明 p dat...
V8引擎對JS陣列的一些實現優化
vart newarray 200000 console time time1 for vari 0 i 200000 i console timeend time1 vart console time time2 for vari 0 i 200000 i console timeend time...
第8周專案3 對稱矩陣壓縮儲存的實現與應用 1
問題及 檔名稱 cpp1.作 者 薛瑞琪 完成日期 2017 年 10 月 19 日 版 本 號 v1.0 問題描述 用壓縮形式儲存對稱矩陣,實現下面的操作並測試 void init int b 為n階對稱矩陣初始化儲存資料的一維陣列b int value int b,int i,int j 返回儲...