欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于java的數(shù)據(jù)庫持久層的開發(fā)方法

文檔序號:6611065閱讀:351來源:國知局
專利名稱:基于java的數(shù)據(jù)庫持久層的開發(fā)方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫交互工具,特別是一種基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法和 工具。
技術(shù)背景隨著B/S結(jié)構(gòu)的系統(tǒng)被日益廣泛的使用,Java語言以其適合網(wǎng)絡(luò)程序開發(fā)的特性 也被廣泛采用。對于大型的系統(tǒng),數(shù)據(jù)庫操作是必不可少的,Java語言提供了一套 JDBCAPI同數(shù)據(jù)庫進行交互的工具JDBC。但是JDBC的操作和使用繁瑣,開發(fā)人員常 常需要編寫很多代碼只是為了處理數(shù)據(jù)庫相關(guān)的交互,并且這個工作所涉及的代碼往 往大同小異。真正涉及到的數(shù)據(jù)處理工作往往很少。有鑒于此,為了提高開發(fā)效率, 出現(xiàn)了各種基于JDBC之上的數(shù)據(jù)庫持久層工具。例如Hibernate、 iBatis、 JD0等。 但是,這些持久層工具為了適應(yīng)繁多的數(shù)據(jù)庫類型及通用性,不免在性能、資源上有 所犧牲,在某種程度上屬于重量級的持久化工具。使用其進行開發(fā)的代價大和學(xué)習(xí)曲 線也是有一定的工作量。因此需要一種輕量級的,便捷的開發(fā)工具。 發(fā)明內(nèi)容本發(fā)明目的是為了解決現(xiàn)有技術(shù)中存在上述問題,本發(fā)明提供了一種輕量級、便捷和具有可擴展性的基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法和工具JDBCUtils,尤其是 利用JDBC工具對數(shù)據(jù)庫的數(shù)據(jù)處理提供新的手段。具體技術(shù)技術(shù)方案是基于JAVA的數(shù)據(jù)庫持久層的開發(fā)方法,基于JAVA的數(shù)據(jù) 庫持久層開發(fā)方法采用面向?qū)ο蟮脑O(shè)計模式,將數(shù)據(jù)庫的持久層抽象出來,將Java 與數(shù)據(jù)庫進行交互的JDBC (JDBCAPI)封裝并抽象為一個單一的接口,將相同的操作 封裝為模板;并且應(yīng)用策略模式,根據(jù)客戶端的需要動態(tài)處理結(jié)果數(shù)據(jù);并且作為客 戶端快速的訪問數(shù)據(jù)庫的一個簡單的接口。所述數(shù)據(jù)庫操作封裝的方法是封裝了JDBC API各種數(shù)據(jù)庫的操作,并模板化 了 JDBC中關(guān)于數(shù)據(jù)庫交互中容易重復(fù)的編碼;結(jié)果處理方法根據(jù)客戶端不同的需 要,擴展數(shù)據(jù)結(jié)果集處理類;根據(jù)頁面展示的不同需求,將結(jié)果數(shù)據(jù)集處理為List、 Map或者Bean的集合返回;輔助方法;輔助JDBCUtils工作,提供批量操作參數(shù),查 詢語句緩存。對于客戶端來說,JDBCUtils是一個簡單的接口,可以通過JDBCUtils方便快速 的訪問數(shù)據(jù)庫。本發(fā)明屏蔽了 JDBC操作的繁瑣設(shè)置和結(jié)果處理操作,本發(fā)明包括數(shù) 據(jù)庫操作封裝的方法、結(jié)果處理方法及輔助方法;相應(yīng)工具框架主要分成3個部分 數(shù)據(jù)庫操作封裝類、結(jié)果處理類及輔助類。本發(fā)明效果相對與現(xiàn)有技術(shù),本發(fā)明在使用過程中做到了輕量級、便捷、可擴 展,圓滿的解決了問題。


圖1是本發(fā)明系統(tǒng)中使用JDBCUtils的結(jié)構(gòu) 圖2是本發(fā)明JDBCUtils的設(shè)計類圖 圖3是本發(fā)明JDBCUtils時序圖具體實施方式
本發(fā)明基本的技術(shù)思想是利用設(shè)計模式和面向?qū)ο蟮母拍?,將?shù)據(jù)庫持久層抽 象出來,把Java基本的JDBC封裝并抽象為一個單一的接口,屏蔽了JDBC操作的繁 瑣設(shè)置和結(jié)果處理操作,將相同的操作封裝為模板方法,并且應(yīng)用策略模式,可以根 據(jù)客戶端的需要動態(tài)處理結(jié)果數(shù)據(jù)。對于客戶端來說,JDBCUtils是一個簡單的接口, 可以通過JDBCUtils方便快速的訪問數(shù)據(jù)庫。在使用JDBCUtils時,直接將其部署在 想應(yīng)用的WEBLOGIC服務(wù)器上即可。 主要構(gòu)成,參見附圖2可知,JDBCUtils包含JDBCUtils、 SqlBuf、 BatchParam三個主要類, 以及ResultSetHandler接口及其實現(xiàn)類ListResultSetHandler、MapListRSHandler、 OptionListRSHandler、 OptionsResultSetHandler、 SingleStringRSHandler。JDBCUtils類封裝了和JDBC數(shù)據(jù)庫做相關(guān)的方法,并持有一個ResultSetHandler 接口的實例對象,在具體使用時委托具體的ResultSetHandler實現(xiàn)處理數(shù)據(jù)結(jié)果集。SqlBuf和BatchParam為批量操作提供相應(yīng)的支持。使用方法JDBCUtils的使用見如下示例。public static uoid m3in(Stfing[] at-gs) { Connection conn = DbConn-getConn('"')-try {〃例一〃直接傳遞參數(shù)"ta",new Integei-("String sql = "SELECT FROM tab—test'WHERE a=7 and b = 7'、List l敏=(List) JDBCUtils-quefWconn, sql, "ta", new Integer^",new ListResultSetHandler("; list = (List) JDBCUtils-quei"iKconn, sql, new 0bject1 { "tttt",new Integer(" }, new ListBesultSetHaiidler());〃例二 ,sql = "updatfe tab—test set a= where JDBCUtils-叩date(咖n, sql, new加ject[] { "12121",new Integer1(2005)"; conn-co,itO;〃例子三,使用一個匿名類來直接處理ResultSet final StHLngBuffer curDate = new StringBuffer(,"')S sql = "select to—char(sysdate, ,y少yymmdd■) ft"8罰dual";; JDBCUtils-que^Kconn, sql, new ResultSetHandlerO <public Object handle(ResultSet rs) throws SQl_Exception { while (rs-next()) {curDate-append<rs*getString(1" sreturn nulls} C3tch (SQLException {e -printStackTrace(); > finally { JDBCUtils-close(conn); 1、 如以上代碼示例,所有的數(shù)據(jù)庫操作都通過JDBCUtils這個接口來進行, 應(yīng)用程序不需要關(guān)心具體的JDBC API,只需要提供符合業(yè)務(wù)邏輯的SQL 和Connection即可。即通過JDBCUtils這個單一接口來與數(shù)據(jù)庫交互。2、 一般JavaAPI數(shù)據(jù)庫操作都會進行如下操作獲取連接,建立Statement 或者Pr印aredStatement,設(shè)置SQL參數(shù),執(zhí)行SQL語句、返回執(zhí)行結(jié)果、 處理執(zhí)行結(jié)果。這些操作步驟都是一致的,只是執(zhí)行不同的SQL語句,設(shè) 置不同的SQL參數(shù),因此,JDBCUtls將這些步驟封裝成模板方法,客戶端 程序只需調(diào)用,并傳入不同的SQL語句和參數(shù)即可。3、 如代碼示例一,將ListResultSetHandler在調(diào)用時傳給JDBCUtils,那么 在獲取到査詢的數(shù)據(jù)集ResultSet后,JDBCUtls將委托 ListResultSetHandler對ResultSet中的數(shù)據(jù)進行解析,并將其存儲為 List結(jié)構(gòu)返回給調(diào)用的客戶端。如果客戶端希望返回的結(jié)果集是M即,則 可在調(diào)用是傳如MapResultSetHandler,將結(jié)果數(shù)據(jù)集轉(zhuǎn)換為Map并返回 給調(diào)用客戶端。4、 如示例代碼三,對于非常簡單的結(jié)果處理,可以直接在調(diào)用JDBCUtils時 使用匿名內(nèi)部類,即時對ResultSetHandler進行擴展,得到自己想要的 處理結(jié)果。5、 如果是比較復(fù)雜的結(jié)果集,則可以開發(fā)一個新的類來進行擴展,這個類只 需實現(xiàn)ResultSetHandler接口的handle方法即可。比如想將結(jié)果集處理 為一個TreeMap,則可開發(fā)一個TreeMapResultSetHandler類,并在handle 方法中將ResultSet數(shù)據(jù)集轉(zhuǎn)換為TreeMap。新增一個類,對巳有的程序 代碼不造成任何的影響,很好的符合了面向?qū)ο缶幊讨械拈_閉原則。6、 輔助類如SqlBuf是提供SQL語句的緩存功能,用來提高效率和節(jié)省內(nèi)存。 BatchParam在JDBCUtils執(zhí)行批量的update和insert操作時,為其提供 批量參數(shù)的存儲功能。
權(quán)利要求
1、基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法其特征是采用面向?qū)ο蟮脑O(shè)計模式,將數(shù)據(jù)庫的持久層抽象出來,將Java與數(shù)據(jù)庫進行交互的JDBC(JDBC API)封裝并抽象為一個單一的接口,將相同的操作封裝為模板;并且應(yīng)用策略模式,根據(jù)客戶端的需要動態(tài)處理結(jié)果數(shù)據(jù);并且作為客戶端快速的訪問數(shù)據(jù)庫的一個簡單的接口。
2、根據(jù)權(quán)利要求1所述基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法,其特征是所述數(shù)據(jù) 庫操作封裝的方法是封裝了 JDBC API各種數(shù)據(jù)庫的操作,并模板化了JDBC中關(guān)于 數(shù)據(jù)庫交互中容易重復(fù)的編碼;結(jié)果處理方法根據(jù)客戶端不同的需要,擴展數(shù)據(jù)結(jié) 果集處理類;根據(jù)頁面展示的不同需求,將結(jié)果數(shù)據(jù)集處理為List、 Map或者Bean 的集合返回;輔助方法;輔助JDBCUtils工作,提供批量操作參數(shù),查詢語句緩存。
3、 根據(jù)權(quán)利要求1所述基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法,其特征是應(yīng)用策略 模式的方法是所有的數(shù)據(jù)庫操作都通過JDBCUtils這個接口來進行,應(yīng)用程序只需 要提供符合業(yè)務(wù)邏輯的SQL和Connection即可;即通過JDBCUtils這個單一接口來 與數(shù)據(jù)庫交互。
4、 根據(jù)權(quán)利要求1所述基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法,其特征是JavaAPI 數(shù)據(jù)庫操作步驟是獲取連接,建立Statement或者Pr印aredStatement,設(shè)置SQL 參數(shù),執(zhí)行SQL語句、返回執(zhí)行結(jié)果、處理執(zhí)行結(jié)果。
5、 根據(jù)權(quán)利要求4所述基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法,其特征是JavaAPI 數(shù)據(jù)庫操作步驟是將ListResultSetHandler在調(diào)用時傳給JDBCUtils,在獲取到查詢的數(shù)據(jù)集 ResultSet后,JDBCUtls將委托ListResultSetHandler對ResultSet中的數(shù)據(jù)進行 解析,并將其存儲為List結(jié)構(gòu)返回給調(diào)用的客戶端;如果客戶端要求返回的結(jié)果集 是Map,則在調(diào)用MapResultSetHandler,將結(jié)果數(shù)據(jù)集轉(zhuǎn)換為Map并返回給調(diào)用客 戶端。
6、 根據(jù)權(quán)利要求4所述基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法,其特征是JavaAPI 數(shù)據(jù)庫操作步驟是對于非常簡單的結(jié)果處理,直接在調(diào)用JDBCUtils時使用匿名內(nèi) 部類,即時對ResultSetHandler進行擴展,得到想要的處理結(jié)果。
7、 根據(jù)權(quán)利要求4所述基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法,其特征是JavaAPI 數(shù)據(jù)庫操作步驟是對比較復(fù)雜的結(jié)果集,則開發(fā)一個新的類來進行擴展,這個類只 需實現(xiàn)ResultSetHandler接口的handle方法。
8、 根據(jù)權(quán)利要求4所述基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法,其特征是輔助方法 是由SqlBuf提供SQL語句的緩存功能,用來提高效率和節(jié)省內(nèi)存;BatchParam在 JDBCUtils執(zhí)行批量的update和insert操作時,為其提供批量參數(shù)的存儲功能。
全文摘要
基于JAVA的數(shù)據(jù)庫持久層開發(fā)方法采用面向?qū)ο蟮脑O(shè)計模式,將數(shù)據(jù)庫的持久層抽象出來,將Java與數(shù)據(jù)庫進行交互的JDBC封裝并抽象為一個單一的接口,將相同的操作封裝為模板;并且應(yīng)用策略模式,根據(jù)客戶端的需要動態(tài)處理結(jié)果數(shù)據(jù);并且作為客戶端快速的訪問數(shù)據(jù)庫的一個簡單的接口。所述數(shù)據(jù)庫操作封裝的方法是封裝了JDBC API各種數(shù)據(jù)庫的操作,并模板化了JDBC中關(guān)于數(shù)據(jù)庫交互中容易重復(fù)的編碼;結(jié)果處理方法根據(jù)客戶端不同的需要,擴展數(shù)據(jù)結(jié)果集處理類;根據(jù)頁面展示的不同需求,將結(jié)果數(shù)據(jù)集處理為List、Map或者Bean的集合返回;并輔助JDBCUtils工作,提供批量操作參數(shù),查詢語句緩存。
文檔編號G06F17/30GK101110030SQ20071013090
公開日2008年1月23日 申請日期2007年8月23日 優(yōu)先權(quán)日2007年8月23日
發(fā)明者劉長遠, 莉 厲, 凱 唐, 張憲林, 波 彭 申請人:南京聯(lián)創(chuàng)科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
武宁县| 龙州县| 鹤壁市| 六安市| 呈贡县| 嘉祥县| 施秉县| 公安县| 越西县| 咸丰县| 定结县| 建瓯市| 黄龙县| 新竹县| 襄垣县| 五大连池市| 宁海县| 葵青区| 通化市| 黔东| 四川省| 同仁县| 道孚县| 桦川县| 天等县| 宜都市| 澄迈县| 遂昌县| 长丰县| 友谊县| 南靖县| 林甸县| 西藏| 大新县| 武邑县| 鹿邑县| 昭平县| 天津市| 裕民县| 永吉县| 鄱阳县|