顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > DBA實戰 > DBA課程 > Oracle培訓教程:抽象工廠中加入Oracle

Oracle培訓教程:抽象工廠中加入Oracle

文章來源: 更新時間:2016/7/20 16:17:35

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢

Oracle培訓教程:抽象工廠中加入Oracle,在設計模式中介紹過抽象工廠設計模式(Abstract Factory),抽象工廠有四種關鍵角色:抽象工廠、實體工廠、抽象產品、實體產品。抽象工廠模式實現原理強調的是對象組合機制,由在“父工廠”內定義不同的“子工廠”對象來負責不同的目標對象的創建,也就是說利用實體產品由抽象產品來約束,而由實體工廠來創建,實體工廠則由抽象工廠約束,可以有效的發揮工廠模式管理清晰的優點。

案例2:采用抽象工廠模式實現在學員信息管理系統中支持Access、SQLServer以及Oracle三套數據庫的切換(以學員基本信息模塊為例),以學員基本信息模塊為例給出概要的實現,并實現展示所有學生信息功能。

案例分析:本例是抽象工廠課堂案例的延續,需要在項目中多添加一個Oracle數據庫,實體產品是數據訪問對象,三套數據庫相當于有三套數據庫訪問對象,通過三個實體工廠管理三套數據庫訪問對象,最后使用抽象工廠管理三個實體工廠。

實現步驟:

1. 在Oracle數據庫中使用Sql語句新建Infos表,并添加約束和表數據,如圖3所示:

圖3 Student表數據

2. 在VS2008中創建空白解決方案,命名為Test.sln。

3. 在解決方案中添加表示層,并添加StudentList.aspx頁面。

4. 在解決方案中添加模型層,根據上面的表結構新建Student.cs實體類。

代碼演示:Student類

public class Student

{

    string stuID;

 

    public string StuID

    {

        get { return stuID; }

        set { stuID = value; }

    }

 

    /**

* 其他成員… …

*/

}

5. 在解決方案中添加數據訪問層IDAL(抽象產品)。

代碼演示:抽象產品

public interface IStudentService

{

    //獲取所有學生信息

    IList<Student> GetAllStudents();

}

6. 在解決方案中添加數據訪問層DAL(實體產品),并利用文件夾將不同的實體產品分類,如圖4所示。

圖4 實體產品

代碼演示:實體產品

/// <summary>

/// 獲得所有學生信息

/// </summary>

/// <returns>所有學生信息集合</returns>

public IList<Student> GetAllStudents()

{

    //創建SQL語句

    string sql = "select * from sys.infos";

    //創建泛型集合

    IList<Student> students = new List<Student>();

    //執行SQL語句得到結果集

    OracleDataReader odr = dbh.ExecuteReader(sql);

    //遍歷結果集

    while(odr.Read())

    {

        Student student = new Student();

 

        student.StuID = Convert.ToString(odr["StuID"]);

        student.StuName = Convert.ToString(odr["StuName"]);

        student.StuAddress = Convert.ToString(odr["StuAddress"]);

        student.Seat = Convert.ToInt32(odr["Seat"]);

        student.Gender = Convert.ToString(odr["Gender"]);

        student.EnRollDate = Convert.ToDateTime(odr["EnRollDate"]);

        student.ClassNo = Convert. ToString (odr["ClassNo"]);

        //添加到泛型集合

        students.Add(student);

    }

    //返回

    return students;

}

7. 在解決方案中添加業務邏輯層,命名為StudentManager.cs。

代碼演示:BLL層

/// <summary>

/// 獲取所有學生信息

/// </summary>

/// <returns>所有學生信息集合</returns>

public IList<Student> GetAllStudents()

{

    //利用抽象工廠創建實體工廠

    Factory factory = Factory.CreateFactory();

    //利用工廠創建產品

    IStudentService iss = factory.GetStudentService();

    return iss.GetAllStudents();

}

8. 在解決方案中添加抽象工廠,并添加相應實體工廠,如圖5所示。

圖5 抽象工廠

代碼演示:抽象工廠

//抽象工廠

public abstract class Factory

{

    public static Factory CreateFactory()

    {

        //采用反射技術得到配置文件中的配置信息

        string factoryType = Config.FactoryType;

        Factory factory =

            (Factory)System.Reflection.Assembly.Load("DBFactory").CreateInstance(factoryType);

        return factory;

    }

 

    //定義子類(實體工廠)的操作規則

    public abstract IStudentService GetStudentService();

}

9. 在表示層添加數據展示控件,通過設定屬性綁定數據提取方法,實現案例目標。

本文地址:http://www.mudan321.com/dba/kecheng/12525238143.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1