1.得到.class 型別
private final class classt;
/*** 把泛型的引數提取出來的過程放入到構造器中寫,因為當子類
* 建立物件的時候,直接呼叫父類的建構函式
*/@suppresswarnings("rawtypes")
public basedaoimpl()
呼叫方式:this.classt.get******name()
2.得到.class 型別的id
private classmetadata classmetadata;//元資料,描述持久化類的物件
public void init()
呼叫的方式:this.classmetadata.getidentifierpropertyname()
3.basedaoimpl中的getcount方法
(1)方法的引數為basequery,在該basequery中有乙個方法buildwhere,利用
該方法可以得到查詢條件的map形式
(2)拼接hql語句的where條件語句
(3)動態及的傳入引數的值
/*** 查詢總數
*/@override
public int getcount(final basequery basequery)
//列印hql語句
system.out.println("hql語句:"+buffer.tostring());
//存放乙個hql語句
query query = session.createquery(buffer.tostring());
/*** 把where條件中的引數傳遞值的過程
*/for (entryentry : keyvalues.entryset())
long count = (long)query.uniqueresult();
return count.intvalue();//long轉化為int
}});
}4.findpageresult方法
public pageresultfindpageresult(final basequery basequery)
return this.hibernatetemplate.execute(new hibernatecallback>()
//設定當前頁的第一行在集合中的位置
int firstresult = (basequery.getcurrentpage()-1)*basequery.getpagesize();
//設定每頁顯示的做多的行數
int maxresult = basequery.getpagesize();
//用hibernate的方式設定分頁
query.setfirstresult(firstresult).setmaxresults(maxresult);
//返回分頁後的結果集
listrows = query.list();
//把結果設定到pageresult
pageresult.setrows(rows);
return pageresult;
}});
}5.根據ids查詢一堆資料
/*** 根據ids獲取一堆資料
*/@override
public setgetentriesbyids(serializable ids) else
}stringbuffer hql = new stringbuffer();
listlist = this.hibernatetemplate.find(hql.tostring());
return new hashset(list);//講list轉化成乙個set
關於泛型的使用
自從jdk1.5之後推出了新特性 泛型,相比於直接用list,list避免了型別轉換帶來的繁雜操作。同時在泛型的應用過程中,避免了直接使用list本類所帶來的型別轉換的錯誤,例如 list list new arraylist list.add 34 list.add 34 是可以編譯通過的,只有在...
關於泛型中的理解
public static t min listt 對於上面定義的泛型方法min中,comparable指的是乙個介面而不是乙個類,這點應該注重注意下。如果想呼叫這個方法,最關鍵的是傳入的t型別必須已經是實現了comparable介面中compareto 這個方法。比如說下面的這個student類 ...
C 中泛型的使用
命名空間 using system.collections.generic 普通陣列 在宣告時必須制定陣列的長度和資料型別 arraylist 陣列元素資料型別和長度不受限制,但效率稍微低些 泛型 類似於陣列功能,其長度不受限制,資料型別在宣告時必須指定。c 中預定義了集中常用的泛型類,如 list...