亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 設(shè)計模式(DAO)的實(shí)例詳解

 更新時間:2017年09月21日 10:12:34   作者:海那邊的小萌男  
這篇文章主要介紹了java 設(shè)計模式(DAO)的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下

java 設(shè)計模式(DAO)的實(shí)例詳解

應(yīng)用場景:在Java程序中,經(jīng)常需要把數(shù)據(jù)持久化,也需要獲取持久化的數(shù)據(jù),但是在進(jìn)行數(shù)據(jù)持久化的過程中面臨諸多問題(如:數(shù)據(jù)源不同、存儲類型不同、供應(yīng)商不同、訪問方式不同等等),請問如何能以統(tǒng)一的接口進(jìn)行數(shù)據(jù)持久化的操作?

其實(shí)這個我沒學(xué)號(≧ ﹏ ≦)。我的理解就是一個產(chǎn)品面向的用戶不是單一的,所以我們要兼容許多情況如前面提到的數(shù)據(jù)源不同、存儲類型不同、供應(yīng)商不同、訪問方式不同等等。

★ 解決方案

DAO的理解:

1、DAO其實(shí)是利用組合工廠模式來解決問題的,并沒有帶來新的功能,所以學(xué)的其實(shí)就是個思路。
2、DAO理論上是沒有層數(shù)限制的
3、DAO的各層理論上是沒有先后的。

項目種文件樣子:

一些代碼實(shí)現(xiàn)

接口

public interface DepDAO {
  public void create(String userId,String name);
}

工廠方法(多個選擇實(shí)現(xiàn))

public class F1Factory {
  private F1Factory(){
  }
  public static DepDAO getDepDAO(){
    //根據(jù)用戶在配置文件中指定的類型來選擇具體的某個實(shí)現(xiàn)類
    //type:類似我們學(xué)號指定的信息: 14+ 06+ 601+ 01
    //   本例如: 1(type1機(jī)器類型)+ 2(type2存儲類型)+ 2(type3供應(yīng)商) + 1(type4訪問方式)
    int type1=1;//第1層工廠的選擇類型,按理應(yīng)該從用戶的配置信息中獲取,這里直接模擬了
    if(type1==1){
      return F2AFactory.getDepDAO();
    }else if(type1==2){
      return F2BFactory.getDepDAO();
    }

    return null;
  }
}

public class F2AFactory {
  private F2AFactory(){
  }
  public static DepDAO getDepDAO(){
    int type2=2;//第2層工廠的選擇類型,按理應(yīng)該從用戶的配置信息中獲取,這里直接模擬了
    if(type2==1){
      // return F3A_ODB_Factory.getDepDAO();
    }else if(type2==2){
      return F3_A_RDB_Factory.getDepDAO();
    }else if(type2==3){
      //return F3_A_XML_Factory.getDepDAO();
    }else if(type2==4){
      //return F3_A_FileFactory.getDepDAO();
    }

    return null;
  }
}

還有幾個工廠方法類似就不貼出來了

實(shí)現(xiàn)類

public class DepEJB_Impl implements DepDAO{
  @Override
  public void create(String userId, String name) {
    System.out.println("利用JPA_Impl向數(shù)據(jù)庫寫入:"+userId+","+name);
  }
}

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java設(shè)計模式之策略模式定義與用法詳解

    Java設(shè)計模式之策略模式定義與用法詳解

    這篇文章主要介紹了Java設(shè)計模式之策略模式定義與用法,結(jié)合具體實(shí)例形式詳細(xì)分析了Java策略模式的概念、原理、定義及相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • springboot動態(tài)加載Echarts柱狀圖

    springboot動態(tài)加載Echarts柱狀圖

    這篇文章主要為大家詳細(xì)介紹了springboot動態(tài)加載Echarts柱狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Java字符流與字節(jié)流區(qū)別與用法分析

    Java字符流與字節(jié)流區(qū)別與用法分析

    這篇文章主要介紹了Java字符流與字節(jié)流區(qū)別與用法,較為詳細(xì)的分析了java字符流與字節(jié)流的概念、功能與使用方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • java編程中拷貝數(shù)組的方式及相關(guān)問題分析

    java編程中拷貝數(shù)組的方式及相關(guān)問題分析

    這篇文章主要介紹了java編程中拷貝數(shù)組的方式及相關(guān)問題分析,分享了Java中數(shù)組復(fù)制的四種方式,其次對二維數(shù)組的簡單使用有一段代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java多態(tài)的全面系統(tǒng)解析

    Java多態(tài)的全面系統(tǒng)解析

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時并不確定,而是在程序運(yùn)行期間才確定,即一個引用變量到底會指向哪個類的實(shí)例對象,該引用變量發(fā)出的方法調(diào)用到底是哪個類中實(shí)現(xiàn)的方法,必須在由程序運(yùn)行期間才能決定
    2022-03-03
  • 在SpringBoot 中從application.yml中獲取自定義常量方式

    在SpringBoot 中從application.yml中獲取自定義常量方式

    這篇文章主要介紹了在SpringBoot 中從application.yml中獲取自定義常量方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • IDEA如何自動生成serialVersionUID的設(shè)置

    IDEA如何自動生成serialVersionUID的設(shè)置

    這篇文章主要介紹了IDEA如何自動生成 serialVersionUID 的設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java substring方法實(shí)現(xiàn)原理解析

    Java substring方法實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java substring方法實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 深入理解springMVC中的Model和Session屬性

    深入理解springMVC中的Model和Session屬性

    這篇文章主要介紹了深入理解springMVC中的Model和Session屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 使用Java7的Files工具類和Path接口來訪問文件的方法

    使用Java7的Files工具類和Path接口來訪問文件的方法

    下面小編就為大家分享一篇使用Java7的Files工具類和Path接口來訪問文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11

最新評論