<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    深藍色心情

    過來聊聊~~~~

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      31 Posts :: 0 Stories :: 46 Comments :: 0 Trackbacks

    #

    guzz 1.2.9 build20110511 更新介紹: 

    主要更新: 

    本次更新主要是解決一些bug,和調整一些設計不合理的地方。 

    同時感謝 高山流水 同學,提供了Maven的配置方式。maven配置方式:http://code.google.com/p/guzz/wiki/TutorialRuntime 

    計數失敗回調服務 
    我們用一個例子來說明。在博客系統中,經常看到博文歸檔。也就是對老文章,首頁只把曾經發表過文章的月份列出來,網友如果要查看,就點擊月份來看這個月的文章列表。一般顯示為“2009年7月(3篇);2007年4月(50篇)”之類的。現在我們要討論的是,這個功能是如何實現的?最簡單的辦法,按照時間count group查詢。 

    但對于大點的博客系統,為了提高性能,一般不會每次都用group查詢,實時算出月份和文章數的統計列表。更一般的做法是,創建一個歸檔表,按照userId-年月-文章數記錄每個月的文章發表數,每發表一篇,更新一下計數。顯示時,直接單條件查詢此表即可。 

    但這種做法,程序設計會比較復雜。每次更新時,都要先檢查這個月的記錄是否存在,如果存在就更新,如果不存在就先創建再更新。而且還帶來了一個性能優化問題,復雜的邏輯使得計數操作無法批量處理。如果這類情況比較多,而且混合很多其他的計數,如文章評論數,新評論數,留言數,訪問次數等等,在計數處理方面的設計就會非常復雜。 

    “計數失敗回調服務”就是用來解決這類問題的。這個服務是guzz先前發布的計數器服務的補充。計數器服務允許程序同時對多個計數操作進行高性能更新,而“計數失敗回調服務”允許計數表不需要提前生成計數項的記錄,在第一次計數更新時,如果計數記錄不存在,可以獲得回調通知,臨時創建。 

    例如上面說的文章歸檔,也只需要按照計數器服務調用一個方法記錄下操作。在計數服務服務器端,實現“計數失敗回調服務”。在執行更新時,如果計數服務發現要更新的記錄不存在,會自動回調“計數失敗回調服務”,程序臨時創建即可。這使得程序設計既簡單,同時又獲得事務批量提交的性能優化,減少數據庫的壓力。 

    更多介紹請參看:http://code.google.com/p/guzz/wiki/AppendCoreService?wl=zh-Hans 


    其他主要更新: 
    1. 增加ExecuteService服務,使得多個異步調用服務可以共享同一個線程池。 

    2. 將Demon線程的檢測更改為按照Thread.isDemon()判定。新版本中,只要線程為demon,不再需要線程名稱必須包含特定開頭字符串,即應用ignoreDemonThreadSQL的sql輸出配置。 

    3. 修復了發現的bug。 

    4. 發布方式上,默認將源代碼放到了guzz.jar中。如果不需要源代碼放入,選擇thin目錄下class和source分開的guzz.jar包。 

    什么是guzz? 

    guzz是一套用來解決ORM、多數據源管理、以及通用數據計算的數據層框架,為系統在數據層的設計提供一站式解決方案。guzz可以看作是 ibatis/hibernate的一大補充和延伸,并可以取代這2個東西。 

    guzz主要功能與特點: 
    • 現代大規模系統設計,技術上吸收了ibatis/hibernate的優點
    • 對于大部分場景,支持像hibernate一樣的對象持久、映射和方便的增刪改查,提高開發效率
    • 對于復雜場景,支持像ibatis一樣,讓DBA參與SQL設計的復雜數據庫操作和優化,以及SQL在線調試
    • 更簡潔、更好用、更容易控制的批操作接口
    • 支持在線加載與調試SQL。按照應用策略,從文件/數據庫/Web Service等途徑,動態提取與使用SQL語句(Dynamic SQL)
    • 支持應用程序使用大量的數據庫和主從讀寫分離
    • 支持數據庫表在多組機器間水平分布(Shard),并自動維護多組機器之間的分布式事務
    • 支持1張表按照業務規則分切成多張小表(Shadow),并支持每張小表擁有自己特殊的屬性字段(Custom)
    • 支持1張大表分切后的小表,分布到不同的數據庫中(VirtualDB)
    • 支持超越范式的特殊關聯、非結構化數據等異構資源POJO模式的統一讀取
    • 支持組件化服務(SOA)和服務相互依賴,構建企業/項目實施基礎平臺
    • 提供面向對象的數據庫讀取標簽(JSP Taglib),加快頁面展示層的快速變更、開發與部署
    • 支持配置管理服務器,可以使用一套軟件系統對所有應用程序的配置進行統一管理
    項目地址:http://code.google.com/p/guzz/ 
    文檔:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6 
    下載:http://code.google.com/p/guzz/downloads/list 

    posted @ 2011-05-12 17:27 深藍色心情 閱讀(1410) | 評論 (0)編輯 收藏

         摘要: 《手把手,教你編寫1個可以并行運行在5臺數據庫上的留言板》

    前言:

    對于大規模系統而言,最復雜,往往也是最大的性能瓶頸,主要都產生在數據層。對于大型系統數據層的設計,主要包括緩存系統和數據庫的可擴展性兩方面。緩存系統比較簡單,網上討論的也比較多,方案也相對成熟,一般來說只要部署一大堆memcached之類的緩存服務器就可以解決了,擴展性也好;但對于可擴展的數據庫層架構設計,通用方案較少,網上資料更是寥寥無幾。

    這也有情可原,現在的主流通用數據庫框架,如hibernate和ibatis基本上都只支持1個系統運行在1臺數據庫上。對應的,基于這些框架的系統,也基本上只能運行在單臺數據庫上了,框架對數據庫擴展性的支持幾乎沒有,開發者也只能被迫接受。

    這篇文檔,主要補充“重要”卻被主流遺失的“數據庫層可擴展”架構設計,讓你的系統在“需要”時,可以隨時通過增加機器就能最簡單的解決數據庫的性能瓶頸。   閱讀全文
    posted @ 2011-03-29 17:23 深藍色心情 閱讀(2353) | 評論 (0)編輯 收藏

    今天,經過一個多月的線上運行,我們很榮幸的發布guzz 1.2.9分布式切表功能。分布式切表是指將一張大表分切成N張小表,并將這些小表儲存到不同的數據庫(機器)中,從而實現數據的分散存儲和分散查詢。 

    對于大型系統和數據規模較大的系統,分布式切表提供了非常好的解決方案,有效的解決了大數據分散存儲、查詢、歸檔和維護等諸多的問題。但市面上流行的數據層框架,對于此特性幾乎無人涉及。guzz首次將這種技術做成了通用框架級別,更全面的提供“一站式數據層解決方案”。 

    guzz 1.2.9 build20110209 更新介紹: 

    分布式切表: 

    guzz特性。 

    分布式切表以guzz的Shadow Table為基礎。在Shadow Table的基礎上,通過配置完成,應用不需要修改現有代碼即可完成小表的分布式存儲。具體請參看:http://code.google.com/p/guzz/wiki/TutorialVirtualDB?wl=zh-Hans 

    至此,guzz已經通過6個層面完成了全面的數據分切支持: 


    支持記錄SQL執行時間: 

    在打印執行的SQL和SQL參數的同時,通過 調試服務(DebugService) 兩個新的參數允許打印出sql執行所花費的時間,并且允許控制只打印執行時間超過一定時長的sql語句。時間單位為納秒。 

    具體請參看:http://code.google.com/p/guzz/wiki/AppendCoreService?wl=zh-Hans 

    支持hbm.xml的package屬性: 

    支持配置hbm.xml的類名時,指定package。用于支持某些hibernate工具自動生成的配置文件。 

    其他: 

    1. 更改LogService為InsertQueueService; 

    2. 修復了幾個bug。 

    什么是guzz? 

    guzz是一套用來解決ORM、多數據源管理、以及通用數據計算的數據層框架,為系統在數據層的設計提供一站式解決方案。guzz可以看作是 ibatis/hibernate的一大補充和延伸,并可以取代這2個東西。 

    guzz主要功能與特點: 
    • 現代大規模系統設計,技術上吸收了ibatis/hibernate的優點
    • 對于大部分場景,支持像hibernate一樣的對象持久、映射和方便的增刪改查,提高開發效率
    • 對于復雜場景,支持像ibatis一樣,讓DBA參與SQL設計的復雜數據庫操作和優化,以及SQL在線調試
    • 更簡潔、更好用、更容易控制的批操作接口
    • 支持在線加載與調試SQL。按照應用策略,從文件/數據庫/Web Service等途徑,動態提取與使用SQL語句(Dynamic SQL)
    • 支持應用程序使用大量的數據庫和主從讀寫分離
    • 支持數據庫表在多組機器間水平分布(Shard),并自動維護多組機器之間的分布式事務
    • 支持1張表按照業務規則分切成多張小表(Shadow),并支持每張小表擁有自己特殊的屬性字段(Custom)
    • 支持1張大表分切后的小表,分布到不同的數據庫中(VirtualDB)
    • 支持超越范式的特殊關聯、非結構化數據等異構資源POJO模式的統一讀取
    • 支持組件化服務(SOA)和服務相互依賴,構建企業/項目實施基礎平臺
    • 提供面向對象的數據庫讀取標簽(JSP Taglib),加快頁面展示層的快速變更、開發與部署
    • 支持配置管理服務器,可以使用一套軟件系統對所有應用程序的配置進行統一管理
    項目地址:http://code.google.com/p/guzz/ 
    文檔:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6 
    下載:http://code.google.com/p/guzz/downloads/list 

    下一個build更新計劃: 

    • 做什么哪?開源一個云服務項目?
    • 輔助診斷類功能?

    posted @ 2011-02-10 15:31 深藍色心情 閱讀(2008) | 評論 (0)編輯 收藏

         摘要: 100%原創功能,目前尚未發現有任何框架實現到這種級別的大規模系統設計要求特性。

    設計與使用方便,幾乎為外掛式,不需要更改現有系統代碼。  閱讀全文
    posted @ 2011-01-18 20:38 深藍色心情 閱讀(1748) | 評論 (0)編輯 收藏

    GuzzServices的PHP客戶端實現,已經實現了:IP反查,敏感詞審查,以及從html代碼中抽取純文本和圖片。

    需要php服務器支持json,配置方式:http://php.net/manual/en/book.json.php

    客戶端的使用方式請參看examples.php中的例子。

    php客戶端下載


    posted @ 2010-12-26 21:09 深藍色心情 閱讀(1516) | 評論 (0)編輯 收藏

    guzz是一套用來解決ORM、多數據源管理、以及通用數據計算的數據層框架,為系統在數據層的設計提供一站式解決方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代這2個東西。 

    guzz主要功能與特點: 
    • 現代大規模系統設計,技術上吸收了ibatis/hibernate的優點
    • 支持像hibernate一樣的對象化持久、映射和方便的增刪改查
    • 支持像ibatis一樣,讓dba參與sql設計的復雜數據庫操作和優化
    • 支持在線加載與調試SQL。按照應用策略,從文件/數據庫/Web Service等途徑,動態提取與使用SQL語句(Dynamic SQL)
    • 支持應用程序使用大量的數據庫和主從讀寫分離
    • 支持超越范式的特殊關聯、非結構化數據等異構資源的統一管理
    • 支持數據表在多組機器間水平分布(Shard),并自動維護多組機器之間的分布式事務
    • 支持1張表按照業務規則分切成多張小表(Shadow),并支持每張小表擁有自己特殊的屬性字段(Custom)
    • 支持組件化服務(Service),以及服務間依賴,幫助構建企業/項目實施基礎平臺
    • 提供面向對象的數據庫讀取標簽(JSP Taglib),加快頁面展示層的快速變更、開發與部署
    • 支持配置管理服務器,可以使用一套軟件系統對所有應用程序的配置進行統一管理
    項目地址:http://code.google.com/p/guzz/ 
    文檔:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6 
    下載:http://code.google.com/p/guzz/downloads/list 

    guzz 1.2.9 build20101021 更新介紹: 

    增強服務,支持服務間相互依賴 

    服務在配置時,通過dependsOn屬性設置依賴的服務,guzz進行IOC注入。例如您將一套通信協議設計成一個通信服務,當其他服務需要進行通信時,直接依賴通信服務完成遠程調用或數據傳送。 

    為了說明服務的價值與使用方式,guzz設計了一些常用的基礎服務,供測試或者直接使用。使用時,一般只需要幾行代碼,就可以完成本來的一個大模塊。限于篇幅,請參看:http://www.guzzservices.com/category/developer-guide/ 

    guzzservices.com中目前提供的服務包括:可以主動推送修改后配置項的系統配置管理,敏感詞管理與文字過濾服務,以及通過IP查詢地理位置服務。后續還將增加一些。試一下,就能發現guzz服務帶來的開發與維護優勢。 

    服務以及注入文檔:http://code.google.com/p/guzz/wiki/TutorialService?wl=zh-Hans#配置服務: 

    新增random主鍵生成器(原創): 

    random主鍵用于解決guid和uuid產生的主鍵在較短時間內比較類似,雖然不會重復,但容易被猜出來的問題。對于某些應用場景,如對外API的key,需要確保無法被猜出,這時就需要random主鍵策略。 

    random主鍵生成一段隨機字符串,由數字和小寫字母組成。隨機串長度默認為32,可以通過length屬性進行調整。 

    其他: 

    1. 修復了一些bug; 

    2. 完成英文版文檔翻譯。 

    下一個build更新計劃: 

    • 支持將一張大表分切到多臺機器上。
    • 其他
    posted @ 2010-10-25 08:17 深藍色心情 閱讀(1332) | 評論 (0)編輯 收藏

    服務已經切換至guzzservices.com,并更改了API。請使用新的接口,具體參看:http://www.guzzservices.com/2010/man_ip_service/

    使用時,需要將guzz升級到1.2.9以及以上版本。

    如果您已經在使用,請盡快切換。新的地址應該不會在變化。非常抱歉進行了服務變化。


    posted @ 2010-10-21 20:08 深藍色心情 閱讀(1584) | 評論 (2)編輯 收藏

    最近討論db shard的帖子比較多,感覺很多都是在參考hibernate shard的思路,但hibernate分表真的那么好嗎?我覺得它最少有2個問題: 

    1. 改成shard后,代碼的API調用要變。代碼改動很大。 
    2. 設計很復雜,不清晰,邏輯關系難以理解。 

    hibernate shard基本上就是為了shard而對hibernate做的增增補補,湊合用還行,根本不具備設計上的參考價值。 

    對數據庫分切方面,到目前為止,我覺得還是guzz的設計最清晰,如果我說的不對,歡迎理性討論。不管您是否使用guzz,但是guzz在數據庫分切方面的設計,對于清晰的設計模式,比hibernate shard更具有借鑒意義。 

    guzz垂直切分 

    垂直切分是指將不同的表分別存儲到不同的數據庫中。guzz默認配置級支持,不需要寫任何代碼,可以在任何時候,在需要時,將每張表存儲到自己單獨的一組服務器上,應該說是垂直分切的極限了。而且設計上,無論什么時候怎么分切,都不需要你改動代碼。開發時你可以讓所有表在一個庫上;部署時,分到多個庫上;以后業務增加了,再更加分散的放。 

    垂直分切簡單配置方式: 

    1. 聲明你要用多少臺數據庫,數據庫之間什么關系。 

    Xml代碼 
    1. <dialect class="org.guzz.dialect.H2Dialect"></dialect>  
    2. <dialect name="mysql5dialect" class="org.guzz.dialect.Mysql5Dialect" />  
    3. <dialect name="oracle10gdialect" class="org.guzz.dialect.Oracle10gDialect" />  
    4.   
    5. <tran>  
    6.         <dbgroup name="default" masterDBConfigName="masterDB" />  
    7.         <dbgroup name="mysql" masterDBConfigName="masterDB" slaveDBConfigName="mysqlSlaveDB" dialectName="mysql5dialect" />  
    8.         <dbgroup name="oracle" masterDBConfigName="oracleDB" dialectName="oracle10gdialect" />  
    9. </tran>   

    這里我們聲明了3組數據庫,而且數據庫類型還不一樣。 

    2. 對每張表,配置應該存儲到那個庫里 

    Xml代碼 
    1. <a-business dbgroup="default" name="filterWord" class="com.guzzservices.business.FilterWord" />  
    2. <a-business dbgroup="mysql" name="filterWordGroup" class="com.guzzservices.business.FilterWordGroup" />  
    3. <a-business dbgroup="oracle" name="configuration" class="com.guzzservices.business.Configuration" />  

    簡單的配置,將三個對象分別存儲到3臺不同的數據庫中,完成垂直分切。 

    guzz水平切表 

    水平切表是指將一張大表,分切成許多小表。guzz的設計是當需要水平分表時,原先代碼不變,為每個需要分切的表編寫一個分表策略類,配置到系統中。然后在調用前,聲明分表策略即可。 
      
      整個過程只需要新寫一個類,在調用出增加一行代碼即可,對原始系統入侵非常小,風險可控。 

      流程總比hibernate shard要清晰很多,具體可以看http://code.google.com/p/guzz/wiki/TutorialShadowTable?wl=zh-Hans 


    數據庫主從分離 

    從垂直分切部分可以看到,guzz也是配置性的原生支持讀寫分離。如果需要增加從數據庫,可以隨時加上,不需要改任何代碼。不需要改動代碼,而且配置也不復雜,應該算是設計上的極限了吧? 

    你只需要在dbgroup中增加一個屬性“slaveDBConfigName”,然后在一個properties文件中加上所有你需要的從數據庫連接池配置即可,從數據庫可以有許多臺。 

    這個hibernate shard根本就沒有涉及到。而且guzz允許程序控制讀寫庫選取,和proxy模式的中間件路由各有優勢,畢竟更加容易控制。如果你做過內容提前審核再允許發布的系統,就會明白proxy中間件解決不了全部問題,有些讀操作不允許延遲,只能讀主庫,而是也是讀事務,proxy中間件會很尷尬。 

    異構數據庫 

    這個hibernate以及ibatis之類的更沒有了。而且也是對應用透明的,你可以隨時選擇增加一種數據庫,然后把某些表放到上面,如增加一個H2做應用端緩存數據庫,自己完成類似Timesten + oracle的架構。 

    配置方式在上面的垂直分切小節也可以看到。 

    數據庫連接池配置 

    隨著表垂直和水平切分的進行,數據庫會越來越多,數據源配置也會越來越多。guzz的設計是配置分組管理,類似Mysql的配置文件。每個數據源配置都在一個組內,無論增加多少都清晰了然,不會名字相互沖突。 

    示例: 
    Properties代碼 
    1. [masterDB]  
    2. guzz.identifer=blogMasterDB  
    3. guzz.IP=localhost  
    4. guzz.maxLoad=120  
    5. driverClass=com.mysql.jdbc.Driver  
    6. jdbcUrl=jdbc:mysql://localhost:3306/blog?useUnicode=true&amp;characterEncoding=UTF-8&amp;useServerPrepStmts=true  
    7. user=root  
    8. password=root  
    9. acquireIncrement=10  
    10. idleConnectionTestPeriod=60  
    11.   
    12. [updateMasterDB]  
    13. guzz.identifer=incUpdateDB1  
    14. guzz.IP=localhost  
    15. guzz.maxLoad=20  
    16. driverClass=com.mysql.jdbc.Driver  
    17. jdbcUrl=jdbc:mysql://localhost:3306/guzzSlowUpdate?useUnicode=true&amp;characterEncoding=UTF-8  
    18. user=slowupdate  
    19. password=slowupdate  
    20. acquireIncrement=10  
    21. idleConnectionTestPeriod=60  
    22.   
    23. [logMasterDB]  
    24. ....  

    如果一些數據庫對某些連接池支持更好,guzz設計上還允許為不同的數據源指定不同的連接池實現。 

    如果您需要分表,還是放棄hibernate shard或ibatis的設計模式吧,哪些只是臨時拼湊出來的東西,設計上根本就不怎么樣! 
    posted @ 2010-10-18 21:02 深藍色心情 閱讀(4226) | 評論 (5)編輯 收藏

         摘要: 服務地址和接口已經更改,新的使用手冊在:http://www.guzzservices.com/2010/man_ip_service/ 一.功能介紹  通過傳入的IP地址,返回IP所在的地理位置。如傳入“58.16.209.19”,返回“貴州省六盤水市 ”。  返回的地理位置又分為3種精確度,程序可以按照自身需要選...  閱讀全文
    posted @ 2010-06-22 11:59 深藍色心情 閱讀(3434) | 評論 (9)編輯 收藏


    guzz是一套用來解決ORM、多數據源管理、以及通用數據計算的數據層框架,為系統在數據層的設計提供一站式解決方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代這2個東西。 

    guzz主要功能與特點: 
    • 現代大規模系統設計,技術上吸收了ibatis/hibernate的優點
    • 支持像hibernate一樣的對象化持久、映射和方便的增刪改查
    • 支持像ibatis一樣,讓dba參與sql設計的復雜數據庫操作和優化
    • 支持在線加載與調試SQL。按照應用策略,從文件/數據庫/Web Service等途徑,動態提取與使用SQL語句(Dynamic SQL)
    • 支持應用程序使用大量的數據庫和主從讀寫分離
    • 支持超越范式的特殊關聯、非結構化數據等異構資源的統一管理
    • 支持數據表在多組機器間水平分布(Shard),并自動維護多組機器之間的分布式事務
    • 支持1張表按照業務規則分切成多張小表(Shadow),并支持每張小表擁有自己特殊的屬性字段(Custom)
    • 支持組件化服務(SOA),構建企業/項目實施基礎平臺
    • 提供面向對象的數據庫讀取標簽(JSP Taglib),加快頁面展示層的快速變更、開發與部署
    • 支持配置管理服務器,可以使用一套軟件系統對所有應用程序的配置進行統一管理
    項目地址:http://code.google.com/p/guzz/ 
    文檔:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6 
    下載:http://code.google.com/p/guzz/downloads/list 

    1.2.8 更新介紹: 

    支持(JPA)annotation 

    支持按照JPA規范的annotation進行對象映射聲明,同時為了實現guzz特有的功能,對annotation進行了擴展。擴展方式與hibernate類似,如果看到與hibernate annotation名字相同的注解,含義和用法也基本相同。 

    更多介紹請參看使用手冊: 
    Guzz Annotation使用幫助:http://code.google.com/p/guzz/wiki/TutorialHbmAnnotation 

    Guzz Annotation參考手冊:http://code.google.com/p/guzz/wiki/AppendJPAAnnotation 

    支持動態管理SQL: 

    動態SQL(Dynamic SQL)不是指應用程序動態的拼接SQL語句,動態SQL是指應用程序可以動態的獲取配置好的SQL語句。在獲取的過程中,SQL語句如何管理,由應用系統自身決定。 

    換句話說,在ibatis中,SQL語句配置到ibatis.xml文件中,在guzz中,配置到guzz.xml中。但當配置完成后,在系統運行期間這些SQL都是不能變動的,如果需要添加1個或者修改優化1個SQL語句,必須重啟應用才能生效。而動態SQL允許應用系統動態的管理(添加/修改/優化/刪除)sql語句以及查詢結果到對象的映射關系(ORM),對于SQL的變更不再需要重啟應用系統,以簡化維護與應對需求變化。 

    動態SQL主要有兩種應用場景:SQL優化和動態數據源。具體介紹請參看:http://code.google.com/p/guzz/wiki/TutorialDynamicSQLService 

    使用動態SQL的應用設計架構參考:http://guzz.javaeye.com/blog/675955 

    改進遠程服務設計: 

    增加對hessian, burlap協議的支持。目前guzz內置支持phprpc, hessian, burlap三種協議進行RPC遠程調用。使用時,三種協議可以透明替換,類似spring對RMI類協議的封裝。具體介紹請參看:http://code.google.com/p/guzz/wiki/TutorialFutureService 

    增加枚舉類型與類型參數化支持: 

    按照TopLink的模式,支持JDK5 enum。Enum在使用時和普通類型一樣,不需要實現特殊的接口(hibernate要求實現接口)。Enum支持通過JPA的Enumeration注釋聲明,也支持在hbm.xml中通過xml定義。通過xml的定義方式參看:http://code.google.com/p/guzz/wiki/TutorialHbmXml 

    類型參數化為guzz的特殊功能,用于處理動態SQL參數和Jsp Taglib條件參數時,將String類型自動轉換成需要的數據類型。參數化類型主要為日期和枚舉。詳細介紹:http://code.google.com/p/guzz/wiki/TutorialHbmXml 

    增加對數據庫保留字的支持: 

    在定義數據庫列名時,可以用`(ESC下面的鍵)將列名引起來,避免字段名稱與數據庫保留字沖突。此功能與hibernate提供的處理保留字方法相同,但guzz只支持字段,不支持`表名`。 

    增加對Microsoft SQL Server的支持(未測試): 

    參考hibernate實現了一個SQL Server 2000 & 2005的dialect,不支持分頁。沒有測試過。Dialect實現類:org.guzz.dialect.MSSQLDialect 

    Guzz已經能夠支持的數據庫和數據類型請參看: 
    http://code.google.com/p/guzz/wiki/TutorialGuzzXml 

    其他: 

    1. 文檔進行了大范圍的補充和更新; 

    2. 修復了所有已經發現的bug。 

    下一版本計劃: 

    • 增加對spring事務的兼容。
    • 設計一些常見的服務,推廣guzz基礎服務理念。
    posted @ 2010-06-22 08:51 深藍色心情 閱讀(1449) | 評論 (1)編輯 收藏

    僅列出標題
    共4頁: 上一頁 1 2 3 4 下一頁 
    主站蜘蛛池模板: 成年女人免费视频播放体验区| 中文字幕乱码免费看电影| 久久久久av无码免费网| 久久国产亚洲精品麻豆| 和老外3p爽粗大免费视频| 亚洲国产精品碰碰| 一本一道dvd在线观看免费视频 | 久久久久久国产精品免费免费男同| 亚洲色无码一区二区三区| 波霸在线精品视频免费观看| 亚洲精品国产美女久久久| 一级毛片免费视频| 亚洲国产精品人久久电影| 在线免费一区二区| 男女污污污超污视频免费在线看| 久久久精品国产亚洲成人满18免费网站 | 99久久免费国产特黄| 亚洲AV无一区二区三区久久| 亚欧免费视频一区二区三区| 亚洲天然素人无码专区| 免费国产在线观看| 中文字幕免费在线播放| 91精品国产亚洲爽啪在线观看| 九九精品免费视频| 黄页网址大全免费观看12网站| 中文字幕亚洲一区二区三区| 国产精品区免费视频| 色老板亚洲视频免在线观| 国产成人精品免费直播| 中国一级毛片免费看视频| 亚洲毛片免费观看| 卡一卡二卡三在线入口免费| fc2成年免费共享视频网站| 亚洲天堂一区二区| 国产麻豆免费观看91| 丝袜足液精子免费视频| 亚洲人成影院午夜网站| 国产日韩成人亚洲丁香婷婷| 蜜桃成人无码区免费视频网站 | 亚洲av极品无码专区在线观看| 四虎免费久久影院|