999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用Hibernate框架實現FTTH接入區域MIS

2013-04-12 00:00:00李小明
現代電子技術 2013年16期

摘 要: 地區級電信FTTH接入區域管理信息系統開發需要簡化數據持久層的操作,提高系統與數據庫的交互效率,利用Hibernate ORM(Object/Relation Mapping)框架技術建立面向對象的域模塊和關系數據庫模型之間的映射是有效的解決手段。Hibernate框架作為連接Java應用程序和關系數據庫的中間件,將Hibernate框架用于開發FTTH接入區域信息管理系統,實際應用結果表明,Hibernate框架方法能夠明顯簡化了數據庫訪問和數據持久化操作,提高了系統開發效率,滿足了業務應用的要求,并且使系統功能結構清晰,后期易于維護和擴展。

關鍵詞: Hibernate; ORM; 數據持久層; 關系映射

中圖分類號: TN919?34; TP311 文獻標識碼: A 文章編號: 1004?373X(2013)16?0056?03

0 引 言

為了更好發展光纖業務和為下一步工作計劃提供信息支持,市場和資源管理部門需要及時了解、共享FTTH接入覆蓋區域的覆蓋信息[1],開發FTTH接入區域MIS 來解決問題。此系統基于B/S模式項目,系統需要與數據庫進行通信交互、CRUD操作。

文獻[2]通過底層的ODBC方式來實現與數據庫進行連接及交互,文獻[3]通過JDBC方式,即能夠執行SQL語句的Java API方式來建立與數據庫進行連接及交互。文獻[4]指出Hibernate在數據庫中持久化業務對象的優秀特點。

地區級電信FTTH接入區域MIS在使用要求上需要靈活的數據庫管理與交互方式,為了簡化與數據庫交互操作,提高開發效率,在上述文獻的基礎上,采用Hibernate框架來創建和維護數據持久層的方法[5?6],由其負責與數據庫交互,結果表明,切實能簡化數據庫訪問操作和提高系統與數據庫交互效率[7?8]。

1 Hibernate介紹

Hibernate是JDBC的輕量級的對象封裝和開放源代碼的對象關系映射框架,連接Java的應用程序和關系數據庫的中間件,負責Java對象的持久化。Hibernate最大的優點就是允許代碼以對象模式來訪問數據庫內容,使得Java開發人員不再用傳統拼寫JDBC SQL語句代碼的方式對數據庫進行CRUD持久化操作,而是使用對象編程思維來操縱數據庫。此外為了提高持久化效率,Hibernate對每一種數據庫都提供對應的方言Dialect,來支持本數據庫提供的一些額外的SQL標準或語法[9?10]。

Hibernate技術本質上是一個提供數據庫服務的中間件。它的架構如圖1所示。

整個系統主要有3層:應用層(Application)、基于Hibernate的數據持久層(Persistent Layer)、數據庫層(Hibernate)。

整個系統是利用數據庫以及配置文件,如hibernate.cfg.xml來為應用程序提供數據持久化服務。通過操作Hibernate配置文件中的值對象和其提供的一些基本類,就可以接入訪問數據庫。

2 Hibernate框架在FTTH接入區域MIS中

的應用

本系統是基于Web的FTTH接入區域信息管理系統。主要能實現后臺資源管理人員對FTTH接入區域信息的收集錄入、信息變更,前臺人員信息查詢等功能模塊。

采用Oracle數據庫,Hibernate作為數據持久層。所有的業務對象都通過Annotation注解和結合hibernate.cfg.xml配置文件將其映射至數據庫的對應表。

在應用Hibernate框架時,首先需要編寫它的配置文件,在此配置文件中增加需要映射處理的Java對象。利用Annotation 對需要持久化的Java對象與關系數據庫數據表之間的映射進行注解,最后編寫業務邏輯類,以實現具體的業務邏輯,并封裝對Hibernate的訪問。

FTTH接入區域信息管理系統中,核心的實體表為T_Ftth_Access_Area,下面以訪問此表為例,簡單介紹一下Hibernate的使用過程。

2.1 Hibernate配置

系統通過加載讀取Hibernate配置文件中的數據庫信息來連接數據庫。Hibemate的配置文件有兩種形式:一種是XML格式的文件,默認名為hibernate.cfg.xml,一種是properties屬性文件,默認文件名是hibernate.properties。

本系統采用XML配置文件的方式進行配置,配置文件主要提供兩方面的重要配置信息,即提供連接數據庫的各種參數信息和提供Hibernate的事務管理對象信息,如產生會話的工廠對象SessionFactory。hibernate.cfg.xml配置如下:

<!—數據庫連接配置信息 ??>

<!?? 指定數據庫所用到的驅動 ??>

name=\"connection.driver_class\">oracle.jdbc.driver.OracleDriver

<!?? 指定數據庫鏈接的url,hibernate鏈接的數據庫名 ??>

jdbc:oracle:thin:@localhost:resource

<!?? 指定連接數據庫的用戶名 ??>

sa

<!?? 指定連接數據庫的用戶口令 ??>

root

<!?? 指定連接池里的最大連接數 ??>

100

<!?? 指定數據庫方言 ??>

org.hibernate.dialect.Oracle9iDialect

<!—類和對應數據庫表映射信息??>

2.2 編寫持久化類及注解持久化類與數據庫表映射

關系

持久化類是數據庫表實體的一種對象反映,是業務層和持久層的數據表示。在Hibernate框架中,持久化類可以使用標準的JavaBean來編寫,類屬性增加標準get、set方法,以便Hibernate持久化對象時讀取和寫操作。

通過持久化類包javax.persistence對實體類進行注解,定義實體類與數據庫表映射關系。

在本系統FtthAccessArea對象中,根據業務實際意義定義相關屬性和方法,FtthAccessArea持久化類及Annotation注解主要代碼如下:

/*通過注解定義持久化類與數據庫表映射關系 */

@Entity

@Table(name=\"T_Ftth_Access_Area\")

public class FtthAccessArea

{

private int id;

private String areaName;

private String areaDesc;

private String accessType;

private String accessResourceCode;

private Date createDate;

private String staffId;

/*定義主鍵ID號產生方式 */

@Id

@GeneratedValue

public int getId()

{return id; }

public void setId(int id)

{this.id = id; }

public String getAreaName()

{return areaName; }

public void setAreaName(String areaName)

{this.areaName = areaName; }

...}

2.3 持久化對象操作

Hibernate首先根據配置文件構建session工廠對象,然后由工廠創建session對象,最后通過session來實現對數據庫的操作,得到Session對象后,可以打開事務,然后從面向對象的角度來操作數據。

下面,以增加FTTH接入區域信息為例來介紹持久化對象的操作過程。

(1)創建session對象:

根據默認的Hibernate配置文件名hibernate.cfg.xml創建工廠對象:

SessionFactory sf =

new AnnotationConfiguration().configure().buildSessionFactory();

Session session=sf.getCurrentSession();

(2)開啟事務:

session.beginTransaction();

(3)創建一個FtthAccessArea對象:

FtthAccessArea ftthAccessArea = new FtthAccessArea();

ftthAccessArea.setAreaName(\"Hibernate\");

ftthAccessArea.setAccessType(\"FTTH\");

...

ftthAccessArea.setCreateDate(new Date());

(4)保存創建的對象到session中:

session.save(ftthAccessArea);

(5)提交事務,保存持久化對象數據至數據庫中:

session.getTransaction().commit();

通過以上步驟即可實現對象數據持久化操作,故采用Hibernate框架在很大程度上簡化系統編程代碼,提高開發效率,避免拼寫SQL語句的煩瑣工作。

3 結 語

Hibernate是一個優秀的Object/Relation Mapping)框架,實現業務實體對象與關系數據庫中二維表的映射。創新點在于利用Hibernate框架理想的實現FTTH接入區域管理信息系統數據持久層模塊功能,充分利用Hibernate技術在數據持久層上的優異功能,結果表明,Hibernate技術顯著簡化系統與數據庫交互操作和數據持久化工作,優化系統編程代碼,提高系統開發效率,為業務對象在關系數據庫中持久化的項目開發提供一定的參考價值。

參考文獻

[1] 楊桂光.基于 EPON 接入的城鄉結合區域寬帶網絡優化方案[D].廣州:華南理工大學,2011.

[2] LAPSLEY M, RIPLEY B. ODBC database access [EB/OL]. [2004?11?22]. http://www.codeproject.com.

[3] ENDRES M. The preference SQL JDBC driver [EB/OL]. [2012?05?12]. https://www.informatik.uni?augsburg.

[4] O'NEIL E J. Object/relational mapping 2008: hibernate and the entity data model (EDM) [C]// Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data. [S.l.]: ACM, 2008: 1351?1356.

[5] ELLIOTT J, FOWLER R.Harnessing Hibernate [M].北京:機械工業出版社,2009.

[6] 孫衛琴.精通Hibernate:Java對象持久化技術詳解[M].北京:電子工業出版社,2010.

[7] 侯志松,余周,鄭煥.Hibernate完全手冊[M].北京:機械工業出版社,2008.

[8] 黃佩虹,張冰晶.精通Hibernate?Java數據庫持久層開發核心編程[M].北京:清華大學出版社,2009.

[9] 南磊.中小企業OA系統開發詳解第5講:hibernate orm框架[M].北京:機械工業出版社,2011.

[10] 陳亞輝,繆勇.Struts2+Spring+Hibernate框架技術與項目實戰[M].北京:清華大學出版社,2012.

主站蜘蛛池模板: 色偷偷av男人的天堂不卡| 国产91无码福利在线| 国产原创自拍不卡第一页| 国产午夜一级毛片| 福利小视频在线播放| 午夜成人在线视频| 日韩亚洲高清一区二区| 国产精品99久久久久久董美香| 亚洲国产成人久久精品软件| 国产精品久久久久久久久久久久| 色婷婷狠狠干| 欧美国产视频| 国产毛片高清一级国语| 精品欧美视频| 五月丁香在线视频| 亚洲欧美在线综合图区| 欧美一区精品| 亚洲美女高潮久久久久久久| 国产婬乱a一级毛片多女| 天天躁夜夜躁狠狠躁躁88| 亚洲精品无码久久久久苍井空| 欧美一级大片在线观看| 亚洲精品免费网站| 欧美激情网址| 91在线国内在线播放老师| 亚洲精品动漫| 无码内射中文字幕岛国片| a级毛片在线免费观看| 91麻豆国产视频| 欧美午夜网站| 欧美午夜理伦三级在线观看| 欧美国产精品不卡在线观看| 69免费在线视频| 国产av一码二码三码无码| 亚洲一级无毛片无码在线免费视频 | 国产精品国产三级国产专业不 | 人妻丝袜无码视频| 蝌蚪国产精品视频第一页| 欧美激情视频二区| 天堂久久久久久中文字幕| 福利国产微拍广场一区视频在线| 性网站在线观看| 一区二区午夜| 97人妻精品专区久久久久| 欧类av怡春院| 久久国产精品娇妻素人| 人妻中文字幕无码久久一区| 日本午夜视频在线观看| 亚洲三级视频在线观看| 亚洲成人手机在线| 欧美在线一二区| 一级看片免费视频| 国产迷奸在线看| 亚洲国产中文欧美在线人成大黄瓜 | 亚洲国产成人精品一二区| 欧洲高清无码在线| 婷婷开心中文字幕| 欧美一级黄色影院| 99re热精品视频中文字幕不卡| 久久久国产精品免费视频| 67194亚洲无码| 在线看AV天堂| 久久久久九九精品影院| 欧美三级自拍| 国产永久在线观看| 54pao国产成人免费视频| 爱色欧美亚洲综合图区| 美女亚洲一区| 丁香婷婷激情综合激情| 国产jizzjizz视频| 黄片在线永久| 亚洲欧洲一区二区三区| 毛片大全免费观看| 成人韩免费网站| 国产亚洲欧美另类一区二区| 高清码无在线看| 国产免费久久精品99re不卡| 精品無碼一區在線觀看 | 天天干天天色综合网| 亚洲色图欧美视频| 日韩无码真实干出血视频| 在线观看精品国产入口|