資料庫持久層設計介面IDesignTimeDAO

2021-08-20 19:42:15 字數 2173 閱讀 6471

該介面主要定義如下幾個方法:查詢、新增、修改等。

本介面採用了泛型作為入參。什麼是泛型

泛型,即「引數化型別」。一提到引數,最熟悉的就是定義方法時有形參,然後呼叫此方法時傳遞實參。那麼引數化型別怎麼理解呢?顧名思義,就是將型別由原來的具體的型別引數化,類似於方法中的變數引數,此時型別也定義成引數形式(可以稱之為型別形參),然後在使用/呼叫時傳入具體的型別(型別實參)。

為了增加通用性,因為資料庫操作物件不是乙個,而是多個,因此採用泛型入參。中的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和一些報表等需要儲存相關的,資料庫是不二選擇了。從剛開始的拖拽控制項,到慢慢學著封裝,走了很長的路。越到後來,越是如履薄冰,因為跟資料庫的耦合太緊,基本意味著設計過於依賴本來是幫助我們的儲存介質...