• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      電源專業(yè)英語詞匯系統(tǒng)NHibernate持久層設(shè)計

      2015-01-16 05:26:52張鵬張聯(lián)
      電子設(shè)計工程 2015年11期
      關(guān)鍵詞:主鍵小類電源

      張鵬,張聯(lián)

      (渤海大學(xué) 外國語學(xué)院,遼寧 錦州 121013)

      隨著經(jīng)濟快速發(fā)展,人民群眾物質(zhì)文化水平不斷提高,電能的應(yīng)用遠遠超過了人們的傳統(tǒng)認(rèn)識范圍,成為科學(xué)技術(shù)發(fā)展和國民經(jīng)濟飛躍的主要動力,持續(xù)地改變著人們的生活[1]。電源是向設(shè)備提供電能的裝置,也稱電源供應(yīng)器。隨著電力行業(yè)的發(fā)展,電源的種類越來越多,從國外引進的先進技術(shù)也越來越多,因此涉及的英文專業(yè)詞匯也越來越多,這些詞匯的學(xué)習(xí)、記憶和使用成為工程技術(shù)人員的難題。建立專業(yè)詞匯系統(tǒng),用對電源的分類方式對詞匯進行分類,便于電源工程技術(shù)人員有選擇地按自己的專業(yè)方向進行學(xué)習(xí)。

      持久化(Persistence)是把數(shù)據(jù)保存到可掉電式存儲設(shè)備中供以后使用。持久層是在系統(tǒng)邏輯層面上用于實現(xiàn)數(shù)據(jù)持久化的一個相對獨立的領(lǐng)域,是對數(shù)據(jù)庫中的數(shù)據(jù)進行存儲、檢索、更新和刪除的一組類和組件[2]。持久層設(shè)計是軟件開發(fā)的基礎(chǔ)性工作,本文基于.NET平臺的NHibernate技術(shù)對電源專業(yè)詞匯系統(tǒng)進行持久層設(shè)計,為系統(tǒng)開發(fā)提供技術(shù)支持。

      1 數(shù)據(jù)存儲結(jié)構(gòu)設(shè)計

      電源按大類可分為普通電源和特種電源[3-5],普通電源又可分為開關(guān)電源、逆變電源、交流穩(wěn)壓電源、變壓器電源等小類;特種電源又可分為高壓電源、醫(yī)療電源、軍用電源、航空航天電源、激光電源等小類。根據(jù)電源分類,將電源專業(yè)詞匯系統(tǒng)的數(shù)據(jù)存儲設(shè)計為“電源大類表(PowerBigCateg)”、“電源小類表 (Power Small Categ)”和 “電源專業(yè)詞匯表(Prof Vocabulary)”三個表。表之間存在兩個“一對多”聯(lián)系,即“電源大類表”和“電源小類表”實體之間是一對多聯(lián)系,一個電源大類包括多個電源小類,一個電源小類只能屬于一個電源大類;“電源小類表”和“電源專業(yè)詞匯表”之間是一對多聯(lián)系,一個電源小類包括多個電源專業(yè)詞匯,一個電源專業(yè)詞匯只能屬于一個電源小類?!半娫创箢惐怼敝麈I為“大類代碼”字段。“電源小類表”主鍵為“小類代碼”字段,“大類代碼”字段為與 “電源大類表”一對多聯(lián)系相對應(yīng)的外鍵(FK_BigCateg_SmallCateg)。 “電源專業(yè)詞匯表”主鍵為“詞匯代碼”字段,“小類代碼”字段為與“電源小類表”一對多聯(lián)系相對應(yīng)的外鍵(FK_SmallCateg_ProfVocabulary)。根據(jù)以上的分析,基于Microsoft SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)設(shè)計的系統(tǒng)數(shù)據(jù)結(jié)構(gòu)及關(guān)系圖如圖1所示。

      圖1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)及關(guān)系圖Fig.1 Data structure and relationship diagram of system

      2 NHibernate體系結(jié)構(gòu)

      對象關(guān)系映射(O/RM,Object-Relation Mapping)是把在數(shù)據(jù)庫中直接進行的原始操作,演變?yōu)閷︻惖膶傩院头椒ǖ牟僮?,是為了解決面向?qū)ο蟪绦蛟O(shè)計與關(guān)系數(shù)據(jù)庫之間存在不匹配的矛盾而產(chǎn)生的技術(shù),程序員可以采用非常簡單的方式將程序中的對象自動持久化到關(guān)系數(shù)據(jù)庫中。NHibernate是.NET領(lǐng)域流行的O/RM框架,NHibernate起源于Hibernate。Hibernate是基于JAVA平臺的對象關(guān)系映射框架,由于Hibernate取得的巨大成功,Microsoft運用其基本思想開發(fā)了NHibernat,是基于.NET平臺的對象關(guān)系映射框架[6]。NHibernat框架體系結(jié)構(gòu)如圖2所示。

      圖2 NHibernate框架體系結(jié)構(gòu)Fig.2 NHibernate framework architecture

      從圖2中可以看出,NHibernate處于Database和Application之間,為應(yīng)用程序提供持久化對象到數(shù)據(jù)庫的服務(wù)。NHibernate通過分離Database和Application,使應(yīng)用程序的可移植性得以實現(xiàn)。對圖2中的主要組成元素描述如下:持久化操作(Persistence operations)使用3種查詢機制,分別是 HQL Query、QBC Query和 Native SQL Query; 配置文件(Configuration file)主要是用來配置一些全局性參數(shù);映射文件(Mapping file)以class為核心元素,規(guī)定類與庫表的映射,子元素用于規(guī)定類屬性與庫表字段之間的映射;會話(Session)和會話工廠(Session factory)則是面向?qū)ο竽P团c關(guān)系模型之間運行時的連接紐帶;事務(wù)處理(Transaction processing)實現(xiàn)對底層 ADO.NET、ODBC、OLEDB 的相關(guān) API進行了封裝。

      3 實體類設(shè)計

      持久化類(Persistent class)是指其實例需要被 Hibernate持久化到數(shù)據(jù)庫中的類。Hibernate板需要為數(shù)據(jù)庫中的每一個表編寫一個持久化類,為每個持久化屬性聲明訪問器(getters和 setters)由于屬性不一定需要聲明為public,可以對 default、procted、internal、private 的屬性一樣進行持久化。必須提供一個不帶參數(shù)的默認(rèn)構(gòu)造方法,訪問級別是public或protected類型。持久化類中所有的屬性,必須聲明為非密封的,也就是不能帶有sealed。持久類不需要繼承NHibernate的類或?qū)崿F(xiàn)NHibernate接口,提高了持久化類的獨立性[7-8]。由于持久化類具有規(guī)范性和規(guī)律性,因此可以使用代碼生成工具根據(jù)表結(jié)構(gòu)自動生成,無需開發(fā)人員手工編寫類代碼。由于持久化類的代碼較多,受文章篇幅所限,本文只給出“電源小類表(PowerSmallCateg)”的持久化類設(shè)計,代碼如下:

      using System;

      namespace NHibernate.Demo.PowerVocabulary

      {

      public class PowerSmallCateg

      {

      //對象屬性

      private Int16 DigitalCode;

      private String PinyinCode;

      private String SmallCategName;

      private String SmallCategCode;

      private String BigCategCode;

      //屬性函數(shù)

      public Int16 DigitalCode

      {get{return DigitalCode;}

      set{DigitalCode=value;}

      }

      public String PinyinCode

      {get{return PinyinCode;}

      set{PinyinCode=value;}

      }

      public String SmallCategName

      {get{return SmallCategName;}

      set{SmallCategName=value;}

      }

      public String SmallCategCode

      {get{return SmallCategCode;}

      set{SmallCategCode=value;}

      }

      public String BigCategCode

      {get{return BigCategCode;}

      set{BigCategCode=value;}

      }

      }

      }

      4 映射文件設(shè)計

      NHibernate每個持久化類都有與之相對應(yīng)的映射文件,通過映射文件,將數(shù)據(jù)表中的記錄轉(zhuǎn)化為對象,將記錄中的字段轉(zhuǎn)化為對象的屬性。映射文件除描述了NHibernate運行時需要的元素類型和屬性外,還包含額外的元素屬性,如被映射字段是否允許為空等。所有映射文件均使用nhibernatemapping-2.0 schema。通常的NHibernate映射文件和類名相同,擴展名為“hbm.xml”。映射文件由實體映射和關(guān)聯(lián)映射兩部分構(gòu)成。

      1)實體映射,建立關(guān)系型數(shù)據(jù)庫中的表和程序中的業(yè)務(wù)類之間的對應(yīng)關(guān)系,包括“表名——類名”映射、“主鍵”映射和“字段——屬性”映射?!氨砻惷庇成涫褂?class>節(jié)點,定義持久化類與數(shù)據(jù)表的對應(yīng)關(guān)系;“主鍵”映射使用

      2)關(guān)聯(lián)映射,對表之間的關(guān)聯(lián)關(guān)系進行映射,包括“一對一”模式、“一對多”模式、“多對一”模式和“多對多”模式。其中,“一對一”模式使用

      中都通過

      “電源小類表(PowerSmallCateg)”表的映射文件設(shè)計如下:

      5 訪問數(shù)據(jù)庫設(shè)計

      API(Application Programming Interface,應(yīng)用程序編程接口)是操作系統(tǒng)提供的預(yù)先定義好的一組函數(shù),包含在Windows系統(tǒng)目錄下的動態(tài)連接庫文件中。.NET平臺應(yīng)用NHibernate的API來訪問數(shù)據(jù)庫,使得開發(fā)人員無需訪問源碼,無需要理解內(nèi)部工作機制的細節(jié),就能完成對數(shù)據(jù)庫的Query、Insert、Update、Delete 等操作[9]。 NHibernate API訪問數(shù)據(jù)庫操作設(shè)計的一般流程如圖3所示。

      圖3 NHibernate訪問數(shù)據(jù)庫操作Fig.3 NHibernate access to the database operation

      NHibernate API訪問數(shù)據(jù)庫操作設(shè)計分四步:一是,通過“new Configuration()”創(chuàng)建一個 Configuration 對象,解析所有.NET對象與數(shù)據(jù)庫的映射關(guān)系;二是,通過“config.BuildSessionFactory ()” 創(chuàng)建 SessionFactory, 通過“factory.OpenSession()”方法來獲取 Session實例;三是,通過調(diào)用Session 接口操作數(shù)據(jù)庫的“Save()、Update()、Delete()、Load()、Find()”等方法實現(xiàn)對象與關(guān)系數(shù)據(jù)庫之間的交互;四是,無論事務(wù)執(zhí)行成功或失敗,都調(diào)用close()方法釋放Session實例占用的資源。

      6 結(jié)束語

      提出獨立的“持久層”的概念,是因為封裝了數(shù)據(jù)訪問的細節(jié),與系統(tǒng)其他部分具有較為清晰和嚴(yán)格的邏輯邊界。NHibernate對數(shù)據(jù)庫結(jié)構(gòu)提供了較為完整的封裝,將數(shù)據(jù)庫模式映射為較完全的對象模型,支持封裝和繼續(xù)機制,功能較強大,比一般的ORM靈活性高。本文基于NHibernate框架設(shè)計電源專業(yè)詞匯系統(tǒng)的持久層,開發(fā)人員可以完全按照對象模型操縱數(shù)據(jù)庫,為快速軟件開發(fā)奠定了基礎(chǔ)。本軟件的開發(fā)與應(yīng)用,對電源專業(yè)工程技術(shù)人員掌握學(xué)習(xí)英文專業(yè)技術(shù)詞匯并提高專業(yè)技術(shù)水平具有重要作用。

      [1]百度文庫.電能對生產(chǎn)生活的影響 [EB/OL].http://wenku.baidu.com/link?url=q6HK6nozl8MUTrrvMGF7zg1dP4uGX-4DY3j4Aw9Gesk-8xuywsAkUnq8WrokaYwrpLDhJ7TBwcLb zxA5E11oqXHvCAM2RJog-exwGkV10kC,2014-9-11.

      [2]鄧廣勝.基于NHibernate的SaaS管理平臺研究與應(yīng)用[D].安徽:合肥工業(yè)大學(xué),2013.

      [3]史平君.特殊而應(yīng)用廣泛的電源—特種電源[J].電源技術(shù)應(yīng)用,2010,13(6):1-7.SHI Ping-jun.Special power supply:a special and widely used power[J].Application of Power Technology,2010,13(6):1-7.

      [4]百度百科.電源[EB/OL].http://baike.baidu.com/view/13542.htm?fr=aladdin,2014-9-1.

      [5]Gregor Dolanc,Darko Belavi?,Marko Hrovat,et al.iature fuel reformer system for portable power sources[J].Journal of Power Sources,2014,271(20):392-400.

      [6]王明倩,劉立強,王宏宇.ORM技術(shù)——Nhibernate在考務(wù)管理系統(tǒng)中的應(yīng)用研究[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2009,30(3):352-356.WANG Ming-qian,LIU Li-qian,WANG Hong-yu.Application of ORM Nhibernate in the exam administration system[J].JournalofChangchun University ofTechnology:Natural Science Edition,2009,30(3):352-356.

      [7]王培培,張云華.基于ASP.NET的醫(yī)療設(shè)備管理系統(tǒng)設(shè)計[J].電腦編程技巧與維護,2013,20(8):83-85.WANG Pei-pei,ZHANG Yun-hua.The design of a managerial system of medical equipment based on ASP.NET[J].Computer Programming Skills&Maintenance,2013,20(8):83-85.

      [8]呂浩志.基于DWZ、NHibernate和ASP.NET MVC3架構(gòu)的Web開發(fā)應(yīng)用[J].科技視界,2014,4(5):62-63.LU Hao-zhi.Web development application based on DWZ,NHibernate and ASP.NET MVC3 framework[J].Science&Technology Vision,2014,4(5):62-63.

      [9]蘇芬平,劉更,王海偉.數(shù)據(jù)庫管理系統(tǒng)持久層的Hibernate解決方案[J].計算機工程與設(shè)計,2008,29(12):2991-2997.SU Fen-ping,LIU Geng,WANG Hai-wei.Hibernate solution for DBMS persistence layer[J].Computer Engineering and Design,2008,29(12):2991-2993.

      猜你喜歡
      主鍵小類電源
      基于Go 實現(xiàn)的分布式主鍵系統(tǒng)研究
      基于外鍵的E-R圖繪制方法研究
      Cool Invention炫酷發(fā)明
      浙江配電網(wǎng)物資標(biāo)準(zhǔn)化研究與應(yīng)用
      哪一款移動電源充電更多?更快?
      消費者報道(2016年3期)2016-02-28 19:07:38
      陽光電源
      風(fēng)能(2016年12期)2016-02-25 08:46:10
      數(shù)據(jù)庫主鍵的設(shè)計方法探討
      新電源
      淺談數(shù)據(jù)庫主鍵設(shè)計的原則
      小類:年輕人要多努力
      大學(xué)(2008年10期)2008-10-31 12:51:10
      乌海市| 岚皋县| 公安县| 韩城市| 上高县| 邛崃市| 泽州县| 西昌市| 哈尔滨市| 昌都县| 巴林左旗| 醴陵市| 综艺| 塔河县| 乌兰察布市| 大渡口区| 富顺县| 宿州市| 大同县| 沧州市| 夏河县| 金门县| 塔河县| 屯昌县| 广昌县| 道孚县| 旌德县| 肇州县| 辽中县| 申扎县| 六安市| 融水| 鹿邑县| 环江| 临漳县| 邵阳县| 新宾| 南靖县| 涟源市| 庄浪县| 清苑县|