• 
    

    
    

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

      基于Hlbernate運動員血液生物學(xué)指標監(jiān)控持久化設(shè)計

      2016-10-13 10:42:37鄭啟龍
      電子設(shè)計工程 2016年10期
      關(guān)鍵詞:生物學(xué)實體對象

      鄭啟龍

      (渤海大學(xué)教育與體育學(xué)院,遼寧錦州121013)

      基于Hlbernate運動員血液生物學(xué)指標監(jiān)控持久化設(shè)計

      鄭啟龍

      (渤海大學(xué)教育與體育學(xué)院,遼寧錦州121013)

      針對運動員血液生物學(xué)指標監(jiān)控系統(tǒng)開發(fā)過程中數(shù)據(jù)存取的難點問題,采用Hibernate進行數(shù)據(jù)持久化設(shè)計,通過Hibernate體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)設(shè)計、Hibernate配置文件、持久化類設(shè)計、映射文件設(shè)計等方面研究,得到了進行數(shù)據(jù)持久化操作的類文件和映射文件。開發(fā)人員直接操作這兩類文件就可完成數(shù)據(jù)存取的全部工作,簡化了軟件開發(fā)過程,提高了軟件的開發(fā)效率和可維護性。

      運動員;血液生物學(xué)指標;監(jiān)控系統(tǒng);Hibernate;持久化

      血液是人體生命的源泉,使體內(nèi)細胞不斷更新,各組織、器官的功能得以維持,讓人充滿活力。人體的生理變化和病理變化往往引起血液成分的改變,所以血液成分檢測有著重要的臨床意義[1]。在運動訓(xùn)練方面,應(yīng)用血液生物學(xué)指標對運動員身體機能評定和訓(xùn)練負荷監(jiān)控越來越受到重視,但目前運用生物學(xué)指標對運動員機能狀態(tài)綜合監(jiān)控的研究較少[2]。血液生物學(xué)指標監(jiān)控系統(tǒng)通過監(jiān)測運動員相關(guān)指標來掌握運動訓(xùn)練情況和身體機能狀態(tài),為提高運動訓(xùn)練效果和運動成績提供客觀依據(jù)。數(shù)據(jù)持久化是系統(tǒng)開發(fā)的重要工作,Hibernate是一個開放源代碼的對象關(guān)系型數(shù)據(jù)持久化框架,通過對JDBC的輕量級對象封裝,向程序員屏蔽了底層的數(shù)據(jù)庫操作,使Java程序員可以隨心所欲地使用對象編程思維來操縱數(shù)據(jù)庫,提高了軟件的開發(fā)效率和可維護性。本文基于Hibernate展開研究,為系統(tǒng)開發(fā)提供支持。

      1 Hlbernate體系結(jié)構(gòu)

      持久化(Persistence)是把數(shù)據(jù)保存到可永久保存的存儲設(shè)備中,持久化最常用的方法是對象關(guān)系映射。對象關(guān)系映射(ORM,Object Re1ationa1 Mapping)用于實現(xiàn)程序?qū)ο蟮疥P(guān)系數(shù)據(jù)庫數(shù)據(jù)的映射[3]。ORM廣義上是對象模型和關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間的相互轉(zhuǎn)換;狹義上是基于關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)存儲,實現(xiàn)虛擬面向?qū)ο蟮臄?shù)據(jù)訪問接口。Hibernate 對JDBC(Java Data Base Connectivity)進行了輕量級對象封裝,是目前Java領(lǐng)域應(yīng)用最廣泛、最靈活的持久化關(guān)系映射框架[4]。Hibernate體系結(jié)構(gòu)如圖1所示。

      圖1 Hibernate體系結(jié)構(gòu)

      在圖1所示的四層體系結(jié)構(gòu)中,最頂層是應(yīng)用程序的臨時對象,最底層是數(shù)據(jù)庫,即通過中間層把臨時對象保存到數(shù)據(jù)庫中。第二層是核心部分,由5個組件構(gòu)成,通過持久化對象與頂層相連,Session Factory為事務(wù)之間可以重用數(shù)據(jù)提供可選的二級緩存,Session表示應(yīng)用程序與持久存儲層之間交互操作的一個單線程對象,Transaction通過抽象將應(yīng)用從底層具體的JDBC、JTA以及CORBA事務(wù)隔離開,Transaction Factory生成Transaction對象實例的工廠,供擴展和實現(xiàn)時使用;Connection Provider起到連接池的作用,生成JDBC連接工廠,通過抽象將應(yīng)用從底層的Datasource或DriverManager隔離開[5_6]。第三層是事務(wù)訪問接口,包括3種方式,JNDI(Java名稱和目錄接口)用于管理對象;JDBC(Java的數(shù)據(jù)庫連接)用于本地事物操作;JTA(Java事務(wù)API)用于操作跨數(shù)據(jù)庫資源操作。

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

      運動員血液生物學(xué)指標監(jiān)控系統(tǒng)用于監(jiān)控運動員的血液生物學(xué)指標,因此,包括運動員和指標兩個實體。運動員實體用于存儲運動員信息,一個運動員保存為一條記錄,“運動員編號”為主關(guān)鍵字;指標實體用于存儲采樣以及化驗指標值,一個運動員的一次采樣保存為一條記錄,“運動員編號和采樣編號”構(gòu)成聯(lián)合主關(guān)鍵字。因此,運動員實體和指標實體之間是一對多的聯(lián)系,運動員實體的一條記錄對應(yīng)指標實體的多條記錄,“運動員編號”為指標實體的外關(guān)鍵字。兩個實體間的一對多聯(lián)系通過“運動員編號”屬性建立名稱為“FK_Ath1etes_Indicators”的外鍵約束實現(xiàn)。系統(tǒng)基于Sq1Server數(shù)據(jù)庫管理系統(tǒng)開發(fā),為了簡化系統(tǒng)開發(fā),只選用Varchar、Char、Datetime和Decima1等4種數(shù)據(jù)類型實現(xiàn)變長字符串、定長字符串、日期時間型和精確數(shù)據(jù)值的存儲。系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計結(jié)果如圖2所示。

      圖2 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)

      3 Hlbernate配置文件

      配置文件定義了數(shù)據(jù)庫的連接信息和全局配置信息。使用配置文件具有功能強大、操作方便、良好的格式檢查機制、文件自動加載等優(yōu)點。Hibernate的核心配置文件是Hibernate.cfg.xm1,放置在c1asspath文件夾下,系統(tǒng)啟動時能默認地加載。也可以使用Properties文件進行配置,但Hibernate提供XML文件,不僅提供了更易讀的結(jié)構(gòu)和更強的配置能力,還可以直接對映射文件加以配置。本系統(tǒng)的Hibernate.cfg.xm1文件基本配置信息如下:

      基本配置是系統(tǒng)運行需要的常規(guī)信息。除此之外,為了軟件開發(fā)和維護的方便性,還附加一些配置信息,包括是否輸出SQL語句到控制臺、Hibernate每次從數(shù)據(jù)庫取出并放到JDBC的Statement中的記錄條數(shù)、數(shù)據(jù)庫方言、Hibernate每次批量操作的記錄數(shù)、是否允許Hibernate用JDBC的可滾動結(jié)果集、連接數(shù)據(jù)庫時是否使用Unicode編碼等、指定映射文件等。

      4 持久化類設(shè)計

      持久化是將程序數(shù)據(jù)在持久狀態(tài)和臨時狀態(tài)間轉(zhuǎn)換的機制。持久化類(Persistent C1ass)用于完成對數(shù)據(jù)庫的存取操作,即將數(shù)據(jù)保存到數(shù)據(jù)庫中或從數(shù)據(jù)庫中讀取數(shù)據(jù)。一個持久化類的實例處于臨時狀態(tài)(Transient)、持久化狀態(tài)(Persistent)和脫管狀態(tài)(Detached)3種狀態(tài)之一,這與持久化上下文(Persistent Context)有關(guān)。臨時狀態(tài)是實例從未與任何上下文關(guān)聯(lián)過;持久化狀態(tài)是實例正在與某個上下文關(guān)系;脫管狀態(tài)是實例曾經(jīng)與某個上下文關(guān)系過,但那個上下文被關(guān)閉了。save()方法把臨時對象轉(zhuǎn)變?yōu)槌志没瘜ο?;update()方法把脫管對象轉(zhuǎn)換為持久化對象;c1ose()方法將持久化對象轉(zhuǎn)變?yōu)槊摴軐ο?;de1ete()方法將脫管對象轉(zhuǎn)變?yōu)榕R時對象或?qū)⒊志没瘜ο筠D(zhuǎn)化為臨時對象;1oad()方法將臨時對象轉(zhuǎn)變?yōu)槊摴軐ο蟆3志没愐话惴Q為PO(Persistent Object),JavaBean的一種用來裝載數(shù)據(jù)的簡單對象,將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用Java代碼創(chuàng)造的對象進行打包,編程時直接使用JavaBean而不用擔(dān)心變化。PO由實體屬性定義、關(guān)聯(lián)實體定義和getter/setter方法構(gòu)成。以一對多關(guān)系為例,“一”端增加Set屬性,使用集合屬性來訪問關(guān)聯(lián)的持久類,“多”端直接訪問被關(guān)聯(lián)實體。getter和setter是JAVABean提供的取值和賦值的方法[7_8]。

      圖2中存在Sq1Server數(shù)據(jù)庫管理系統(tǒng)的4種類型,與Hibernate之間的數(shù)據(jù)類型對應(yīng)關(guān)系如下:Varchar對應(yīng)String、Char對應(yīng)Character、Datetime根據(jù)表示的值不同映射為Date/Time/Timestamp之一、Decima1映射為Big_Decima1。以指標(indexInformation)實體為例來說明持久化類實現(xiàn)方法。對于簡單的JavaBean,除了setter/getter方法外不包含其他邏輯。在PO中通常要實現(xiàn)Seria1izab1e接口。主要用來完成以下兩項工作:一是保存javaBean設(shè)計時的配置信息供程序啟動時使用;二是用于遠程方法調(diào)用(RMI,Remote Method Invocation),當(dāng)向遠程對象傳遞消息時用來傳遞參數(shù)的返回值。指標(indicators)實體包含了imp1ements Seria1izab1e的PO實現(xiàn)代碼如下:

      5 映射文件設(shè)計

      Hibernate的持久化類和關(guān)系數(shù)據(jù)庫表之間的映射用一個XML文檔實現(xiàn)。通過一系列XML元素的配置,把持久化類映射到數(shù)據(jù)庫表,并把持久化類的屬性映射數(shù)據(jù)列。映射文件通常包括四類元素,<hibernate_mapping>是映射文件的根元素,包含若干可選屬性;<c1ass>定義一個持久化類與數(shù)據(jù)表的映射關(guān)系;<id>映射屬性到數(shù)據(jù)庫表主鍵的字段對應(yīng)關(guān)系;<property>映射持久化類的屬性與數(shù)據(jù)庫表字段之間的對應(yīng)關(guān)系;<composite_id>映射多個屬性構(gòu)成的聯(lián)合主鍵;<generator>定義內(nèi)置生成器,包括increment自增方式生成主鍵、包含IP地址和JVM啟動時間的UUID、由底層數(shù)據(jù)庫生成的Identity自增主鍵、底層數(shù)據(jù)庫提供的Sequence序列標識符、按照high/1ow算法生成的Hi1o標識符、跨數(shù)據(jù)庫時由底層方言產(chǎn)生的native標識符等。除了映射持久化類與數(shù)庫表之間的對應(yīng)關(guān)系外,還要進行關(guān)聯(lián)關(guān)系映射,包括一對一關(guān)聯(lián)、一對多關(guān)聯(lián)和多對多關(guān)聯(lián),每個關(guān)聯(lián)又可分為單向和雙向兩種[9]。與上面PO實現(xiàn)相對應(yīng)的指標(indicators)實體的映射文件代碼如下:

      <many_to_one co1umn=″ath1etesNo″c1ass=″th1etes″name=″ath1etesNo″not_nu11=″true″cascade=″none″/>

      6 結(jié)束語

      對運動員訓(xùn)練情況和身體機能狀態(tài)監(jiān)控的方法很多,血液生物學(xué)指標是比較理想的方法,具有較強的科學(xué)性[10]。本文基于Hibernate研究運動員血液生物學(xué)指標監(jiān)控系統(tǒng)持久化方法,開發(fā)人員以此成果為依據(jù)可以直接編程實現(xiàn),提高了軟件開發(fā)效率。本文研究成果具有以下優(yōu)點:對象/關(guān)系數(shù)據(jù)庫映射,使用時只需要操縱對象,拋棄了數(shù)據(jù)庫中心的思想;透明持久化,對象生存期很短僅與Session相關(guān)聯(lián),一旦Session被關(guān)閉,對象就會脫離持久化狀態(tài)被應(yīng)用程序的任何層自由使用;緩存機制,提供一級緩存和二級緩存,簡潔了HQL編程。

      [1]百度百科.血液[EB/OL].(2015_06_30).http://baike.baidu.com/ view/18631.htm?fr=a1addin.

      [2]盧明月,李之俊.血液生物學(xué)指標在女壘運動員冬訓(xùn)期間機能狀態(tài)監(jiān)控中的應(yīng)用[J].長春理工大學(xué)學(xué)報:自然科學(xué)版,2009,32(3):424_426.

      [3]郭朗.Hibernate框架ORM常見數(shù)據(jù)關(guān)聯(lián)分析[J].信息系統(tǒng)工程,2013,26(4):134.

      [4]徐金虎,宋斌,丁銳.Spring MVC+Hibernate+jQeury模式開發(fā)框架應(yīng)用研究[J].自動化技術(shù)與應(yīng)用,2015,34(3):42_46.

      [5]賴小平.基于SpringMVC+Hibernate的傻瓜進銷存系統(tǒng)的設(shè)計與實現(xiàn)[J].福建電腦,2015,31(3):38_40.

      [6]張國平,王文虎,馬麗.基于Struts和Hibernate的煤礦管理系統(tǒng)的設(shè)計[J].計算機技術(shù)與發(fā)展,2014,24(4):243_245.

      [7]蔡群英.基于Struts2+Hibernate+Spring的留言板的開發(fā)[J].電腦知識與技術(shù),2014,10(24):5656_5658.

      [8]張少應(yīng),程傳旭.基于Hibernate持久化層的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2014,24(12):101_104.

      [9]葉廣仔,劉曉蔚.在線考試系統(tǒng)中Hibernate框架的應(yīng)用[J].電子設(shè)計工程,2013,21(7):1_4.

      [10]談艷.運動員機能狀態(tài)監(jiān)控中血液生物學(xué)指標的綜合運用[J].遼寧體育科技,2011,33(3):55_58.

      Perslstence deslgn on hemo-blologlcal lndlces monltorlng system of athletes based on Hlbernate

      ZHENG Qi_1ong
      (School of Education and Sports,Bohai University,Jinzhou 121013,China)

      For the difficu1ties of data access in the deve1oping hemo_bio1ogica1 indices monitoring system of ath1etes,Hibernate is used to design data persistence,and c1ass fi1es and mapping fi1es that can operate data persistence is obtained by studying Hibernate architecture,data structure design,Hibernate configuration fi1es,persistent c1ass design,mapping fi1e design.Deve1-opers can manipu1ate these two types of fi1e direct1y to comp1ete a11 the work of data access,so the software deve1opment process wi11 be simp1ified and the deve1opment efficiency and maintainabi1ity of software wi11 be improved.

      ath1etesj hemo_bio1ogica1 indicesj monitoring systemj Hibernatej persistence

      TN919.5

      A

      1674_6236(2016)10_0174_03

      2015_07_03稿件編號:201507032

      渤海大學(xué)博士啟動基金(2015bs001)

      鄭啟龍(1972—),男,山東膠南人,博士,講師。研究方向:體育教學(xué)與訓(xùn)練。

      猜你喜歡
      生物學(xué)實體對象
      神秘來電
      睿士(2023年2期)2023-03-02 02:01:09
      谷稗的生物學(xué)特性和栽培技術(shù)
      前海自貿(mào)區(qū):金融服務(wù)實體
      中國外匯(2019年18期)2019-11-25 01:41:54
      初中生物學(xué)糾錯本的建立與使用
      初中生物學(xué)糾錯本的建立與使用
      攻略對象的心思好難猜
      意林(2018年3期)2018-03-02 15:17:24
      實體的可感部分與實體——兼論亞里士多德分析實體的兩種模式
      兩會進行時:緊扣實體經(jīng)濟“釘釘子”
      振興實體經(jīng)濟地方如何“釘釘子”
      基于熵的快速掃描法的FNEA初始對象的生成方法
      石泉县| 三门县| 尼木县| 太仓市| 嵩明县| 大石桥市| 长兴县| 河源市| 淮北市| 赤壁市| 来宾市| 海宁市| 宁远县| 阿坝县| 瓮安县| 岢岚县| 昌吉市| 双桥区| 宁乡县| 潍坊市| 马鞍山市| 漳州市| 珲春市| 林西县| 宽城| 巧家县| 仙桃市| 台中市| 六盘水市| 屯留县| 陇南市| 南澳县| 泗水县| 石楼县| 安阳市| 宝清县| 内黄县| 林西县| 黎川县| 张掖市| 阿城市|