欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

★ 解決方案

DAO的理解:

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

項(xiàng)目種文件樣子:

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

接口

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

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

public class F1Factory {
  private F1Factory(){
  }
  public static DepDAO getDepDAO(){
    //根據(jù)用戶在配置文件中指定的類(lèi)型來(lái)選擇具體的某個(gè)實(shí)現(xiàn)類(lèi)
    //type:類(lèi)似我們學(xué)號(hào)指定的信息: 14+ 06+ 601+ 01
    //   本例如: 1(type1機(jī)器類(lèi)型)+ 2(type2存儲(chǔ)類(lèi)型)+ 2(type3供應(yīng)商) + 1(type4訪問(wèn)方式)
    int type1=1;//第1層工廠的選擇類(lèi)型,按理應(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層工廠的選擇類(lèi)型,按理應(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;
  }
}

還有幾個(gè)工廠方法類(lèi)似就不貼出來(lái)了

實(shí)現(xiàn)類(lèi)

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    使用Java7的Files工具類(lèi)和Path接口來(lái)訪問(wèn)文件的方法

    下面小編就為大家分享一篇使用Java7的Files工具類(lèi)和Path接口來(lái)訪問(wèn)文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11

最新評(píng)論