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

基于Java的數據庫應用框架研究及開發

2009-04-29 00:00:00王向中
電腦知識與技術 2009年36期

摘要:大量的計算機軟件的開發離不開數據庫的使用,利用數據庫框架實現數據庫的應用具有多方面的優勢。該文設計和實現了一個微型數據庫應用框架,并將該框架應用于實際的軟件開發過程中,從而驗證了該框架的可用性。該框架適用于小型軟件系統的開發,提高了系統的可擴展性。

關鍵詞:Java數據庫技術;數據庫框架;框架模型;框架實現

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)36-10184-03

The Research and Development of Database Application Framework on Java

WANG Xiang-zhong

(Software and Art Design Department Nanjing Institute of Railway Technology, Nanjing 210015, China)

Abstract: Many developments of computer software can do without the application of database, it has a lot of advantages in database application using database framework. It designs and realizes a micro-type database application framework, and uses the framework in software development; as a result it confirms that this framework is usable. The framework can apply to the development of small software system, and it can increase the extendibility of the system.

Key words: Java database technology; database framework; framework model; framework realize

隨著人類社會對軟件需求的不斷增加,計算機軟件的開發和應用也越來越廣泛,已經深入到社會生活的各個方面,而其中基于數據庫開發的應用系統也越來越多。研究在軟件開發中數據庫技術的使用和實現尤其必要。

如果每個程序員都通過實現自己的類來使用數據庫,一方面,將增加程序員本身的工作量,增加軟件開發中潛在的錯誤;另一方面,無法降低開發人員對數據庫操作的隨意性,無法實現代碼復用。這些都不符合面向對象的軟件開發思想,為了又好又快地開發我們所需的應用系統,隨著面向對象開發技術的不斷發展,基于框架的軟件開發已經成為一種軟件開發的趨勢,并在實際的軟件開發中得到了廣泛的應用,其中數據庫技術的應用也不例外。

1 框架技術

目前,大量的軟件開發實踐證明,幾乎所有的軟件開發都不是從零開始的,而是在一定的已有代碼、組件、框架的基礎上進行的二次開發,基于框架的軟件開發事實上已經成為業界軟件開發的一種共識,在數據庫應用開發中也是如此。

使用數據庫框架至少有三個方面的優勢。第一,可以隱藏數據庫操作的復雜性,為處理復雜任務提供一套標準的操作程序。第二,可以在開發人員和數據庫之間構建一個經過反復試驗的穩固的中間層,降低風險。第三,可以讓執行任務的方式具有一致性。框架的使用為處理復雜任務提供的標準,如圖1所示。

目前,在Java開發中也使用了大量的數據庫框架,其中最流行的是Hibernate框架。但Hibernate框架更適合于大型軟件系統的開發,并且需要一定是時間的學習。為了在小型軟件系統的開發中也使用數據庫框架,本文實現了一個的數據庫應用框架。

2 Java數據庫技術

JDBC(Java Database Connectivity)是由Sun公司及其合作伙伴共同制定的一種基于JAVA語言訪問數據庫的技術。JDBC提供了訪問數據庫的接口(即標準),而具體實現由數據庫廠商提供,而程序員編程時都是針對接口進行編程的。

JDBC為了使程序員方便地操作數據庫,提供了五個重要的接口,它們分別是Connection、Statement、PreparedStatement、CallableStatement和ResultSet,其相互關系如圖2所示。

其中:

1)Connection:用于保存特定的數據庫連接(會話),在連接上下文中執行SQL語句并返回其結果。

2)Statement:用于執行靜態SQL語句并返回其所生成的結果對象。

3)PreparedStatement:表示預編譯的SQL語句對象。

4)CallableStatement:用于執行SQL存儲過程。

5)ResultSet:表示數據庫結果集的數據表,通常通過執行查詢數據庫的語句生成。

利用JDBC訪問數據庫的一般流程如下:

1)加載數據庫驅動程序;

2)建立與數據庫的連接;

3)執行SQL語句;

4)處理結果;

5)釋放數據庫連接。

3 數據庫框架模型

本文實現的數據庫模型的類圖如圖3所示。

該數據庫框架由四個類和一個接口構成。

1)Parser接口:定義了一個解析器的標準,其中包含如下兩個方法。

public DatabaseConfigInfor parse(String filename);

public DatabaseConfigInfor parse(File file);

parse()方法實現對一個數據庫的配置文件進行解析,并使用DatabaseConfigInfor對象對數據庫的配置信息進行包裝,以便于數據庫配置信息的傳輸。

2)ParserAdapter類:是實現了Parser接口的一個抽象類,對Parser接口中的兩個方法分別進行空實現,即這兩個方法從邏輯上而言,什么事也沒干。將其定義為抽象類是防止程序員創建該類的對象。

3)XMLParser類:承繼于ParserAdapter類的非抽象類,實現對XML配置文件的解析。

4)DatabaseConfigInfor類:是一個JavaBean類,用于存儲數據庫的配置信息。

5)DBConnection類:實現數據庫驅動程序的加載,創建數據庫連接對象,用于對數據庫的操作。

4 數據庫框架實現

本數據庫框架的實現涉及到多個類的實現,由于篇幅的限制,本文僅介紹XML配置文件的解析器ParserAdapter類和DBConnection類的實現過程。

1)ParserAdapter類

public class XMLParser extends ParserAdapter

{

private DatabaseConfigInfor dc=1;

public DatabaseConfigInfor parse(String filename)

{

dc=new DatabaseConfigInfor(); //創建保存數據庫配置信息的對象

try

{ //創建文檔解析器的工廠類對象

DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

//在解析XML文件時,不考慮空白結點

factory.setIgnoringElementContentWhitespace(true);

//創建文檔解析器對象

DocumentBuilder builder=factory.newDocumentBuilder();

//解析XML文件

Document doc=builder.parse(new FileInputStream(filename));

Element element=doc.getDocumentElement();

//提取XML文件中的數據庫配置信息,并存入DatabaseConfigInfor對象

NodeList nodes=element.getChildNodes();

for(int i=0;i

{

Node currentNode=nodes.item(i);

String tagName=currentNode.getNodeName();

String tagValue=currentNode.getFirstChild().getNodeValue();

if(tagName.equals(\"driver\"))

{

dc.setDriver(tagValue);

}

else if(tagName.equals(\"url\"))

{

dc.setUrl(tagValue);

}

else if(tagName.equals(\"databasename\"))

{

dc.setDatabasename(tagValue);

}

else if(tagName.equals(\"user\"))

{

dc.setUser(tagValue);

}

else if(tagName.equals(\"password\"))

{

dc.setPassword(tagValue);

}}}

catch(ParserConfigurationException pce)

{pce.printStackTrace();}

catch(FileNotFoundException fnfe)

{fnfe.printStackTrace();}

catch(org.xml.sax.SAXException saxe)

{saxe.printStackTrace();}

catch(IOException ioe)

{ioe.printStackTrace();}

return dc;

}}

2)DBConnection類

public class DBConnection

{

public Connection getConnection(Parser parser)

{

//利用解析器解析數據庫框架的配置文件

DatabaseConfigInfor dc=parser.parse(\"dataBaseConfiger.xml\");

Connection conn=1;

try

{

Class.forName(dc.getDriver());//加載數據庫驅動程序

//創建數據庫連接對象

conn=DriverManager.getConnection(dc.getUrl()+\";databasename=\"+

dc.getDatabasename(),dc.getUser(),dc.getPassword());

}

catch(ClassNotFoundException cnfe)

{cnfe.printStackTrace();}

catch(SQLException sqle)

{sqle.printStackTrace();}

return conn;

}}

5 結論

該文給出了數據庫框架的設計和開發過程,可以將其應用基于數據庫的應用系統開發,以避免開發者重復編寫操作數據庫的代碼。經過作者的實踐,此數據庫可以運用于Java應用系統的開發。在應用該數據庫框架時,需要編寫相應的DAO(數據訪問對象類),也可以通過繼承ParserAdapter類實現自己新的數據庫配置文件解析器,而不需要修改其他的源代碼,從而實現框架的擴展。

參考文獻:

[1] 殷兆麟.UML及其建模工具的使用[M].北京:清華大學出版社,北京交通大學出版社,2008.

[2] 何克清,應時,田中茂,等.業務應用軟件框架的一種分析方法[J].軟件學報,2001,12(7):1007-1014.

[3] Cay S.Horstmann,Gary Cornell[美] .Java2核心技術卷II,高級特性[M].北京:機械工業出版社,2006.

[4] 王國仁.XML數據管理技術[M].北京:電子工業出版社,2007.

主站蜘蛛池模板: 国产精品黑色丝袜的老师| 亚洲欧洲天堂色AV| 亚洲中文字幕23页在线| 国产精品国产三级国产专业不 | www.亚洲色图.com| 久久男人视频| 日韩二区三区无| 天堂在线视频精品| 亚洲综合18p| 这里只有精品在线播放| 国内精自线i品一区202| 欧洲在线免费视频| 成·人免费午夜无码视频在线观看| 日韩在线成年视频人网站观看| 国产成人精品一区二区不卡| 国产精品永久不卡免费视频| 亚洲午夜福利精品无码不卡| 91成人精品视频| 就去吻亚洲精品国产欧美| 99人体免费视频| 中文字幕亚洲精品2页| 国产后式a一视频| 成人在线第一页| 亚洲精品亚洲人成在线| 精品国产欧美精品v| 成人欧美日韩| 国产欧美综合在线观看第七页| 美女内射视频WWW网站午夜| 国产91蝌蚪窝| 8090午夜无码专区| 伊人91视频| 久久www视频| 亚洲视频欧美不卡| 日韩欧美视频第一区在线观看| 亚洲国产成人超福利久久精品| 国产乱人伦偷精品视频AAA| 国产日韩欧美在线视频免费观看 | 亚洲人成在线免费观看| 午夜毛片免费看| 亚洲美女高潮久久久久久久| 一级黄色片网| 国产午夜精品一区二区三区软件| 在线看AV天堂| 国产91视频观看| 亚洲美女操| 亚洲成人精品在线| 国产网站一区二区三区| 亚洲无码高清一区二区| 热这里只有精品国产热门精品| 国内精品九九久久久精品 | 亚洲h视频在线| 色综合a怡红院怡红院首页| 日韩成人午夜| 114级毛片免费观看| 人妻夜夜爽天天爽| 粉嫩国产白浆在线观看| 国产人成午夜免费看| 免费一级大毛片a一观看不卡| 国产精品伦视频观看免费| 久久毛片网| 国产女同自拍视频| 久久这里只有精品2| 精品一区二区三区四区五区| 精品亚洲国产成人AV| 一区二区三区四区在线| 伊人欧美在线| 日韩高清成人| 亚洲无码91视频| 亚洲综合九九| 99伊人精品| 精品国产成人av免费| 一本大道视频精品人妻 | 国产白浆视频| 婷婷六月在线| 精品色综合| 日韩二区三区| 欧美日韩在线亚洲国产人| 四虎永久免费地址| 在线看AV天堂| 国产免费a级片| 激情综合图区| 找国产毛片看|