該介面主要定義如下幾個方法:查詢、新增、修改等。
本介面採用了泛型作為入參。什麼是泛型
泛型,即「引數化型別」。一提到引數,最熟悉的就是定義方法時有形參,然後呼叫此方法時傳遞實參。那麼引數化型別怎麼理解呢?顧名思義,就是將型別由原來的具體的型別引數化,類似於方法中的變數引數,此時型別也定義成引數形式(可以稱之為型別形參),然後在使用/呼叫時傳入具體的型別(型別實參)。
為了增加通用性,因為資料庫操作物件不是乙個,而是多個,因此採用泛型入參。中的e表示型別形參,可以接收具體的型別實參,並且此介面定義中,凡是出現e的地方均表示相同的接受自外部的型別實參。
通過傳遞hql或sql語句進行操作。返回的集合collection。
1、遵循介面一旦被實現(implements),介面內的方法必須全部實現
,但是當實現類為抽象類時,介面內的方法可以不實現或者部分實現;
2、在實現**重用性,又特此定義了 部分抽象類。但是均implements當前介面。
3、方法中採用collection:概念
可以通過迭代器獲取資料
//獲取迭代器,並用迭代器迭代元素。
for(iterator it = coll.iterator();it.hasnext();)
具體**如下:
public inte***ce idesigntimedaoextends ibasedao {
public abstract object getdata(string hql) throws exception;
public abstract collectiongetdatas(string hql) throws exception;
public abstract collectiongetdatas(string hql, paramstable params) throws exception;
public abstract collectiongetdatas(string hql, paramstable params, int page, int lines) throws exception;
public abstract int gettotallines(string hql) throws exception;
public abstract collectiongetdatas(string hql, int page, int lines) throws exception;
public abstract datapackagegetdatapackage(string hql) throws exception;
public abstract datapackagegetdatapackage(string hql, int page, int lines) throws exception;
public abstract datapackagegetdatapackage(string hql, paramstable params) throws exception;
public abstract datapackagegetdatapackage(string hql, paramstable params, int page, int lines) throws exception;//分頁查詢
public abstract void create(valueobject vo, webuser user) throws exception;//建立物件
public abstract void create(object po) throws exception;
public collectionquerybyhql(string hql,int pageno,int pagesize) throws exception;
public int executeupdate(string hql) throws exception;
public void checkout(string id, webuser user) throws exception;
public void checkin(string id, webuser user) throws exception;
public list querybysql(string sql) throws exception;
《魯棒的資料庫持久層設計》讀書筆記 開篇
由於專案的需要最近很關注orm。因為自己目前負責的專案當初開始的時候比較倉促,所以在架構上沒有經過仔細的考慮。加之當初專案成員都是臨時加入,水平參差不齊很難 造成了 重複太多,維護很不方便,所以考慮進行一下重構。初步打算採用nhibernate,雖然nhibernate是開源的但是加入到專案中還是存...
資料庫介面隔離設計
經過多年的企業級相關開發,跟資料庫的交道打得太多了。每個企業相關的專案都離不開資料庫,尤其是mis,erp和一些報表等需要儲存相關的,資料庫是不二選擇了。從剛開始的拖拽控制項,到慢慢學著封裝,走了很長的路。越到後來,越是如履薄冰,因為跟資料庫的耦合太緊,基本意味著設計過於依賴本來是幫助我們的儲存介質...
資料庫介面隔離設計
經過多年的企業級相關開發,跟資料庫的交道打得太多了。每個企業相關的專案都離不開資料庫,尤其是mis,erp和一些報表等需要儲存相關的,資料庫是不二選擇了。從剛開始的拖拽控制項,到慢慢學著封裝,走了很長的路。越到後來,越是如履薄冰,因為跟資料庫的耦合太緊,基本意味著設計過於依賴本來是幫助我們的儲存介質...