ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>97人澡人人添人人爽欧美,免费网站免费进入在线,www欧美xxxxhttp://www.aygfsteel.com/darkbluefeeling/category/4986.html˜q‡æ¥èŠèŠ~~~~zh-cnWed, 18 Jul 2012 02:11:49 GMTWed, 18 Jul 2012 02:11:49 GMT60万众期待的guzz新版¾lˆäºŽå‘布啦!各种期待的功能噢~~http://www.aygfsteel.com/darkbluefeeling/archive/2012/07/18/guzz-1-3-1-released.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Wed, 18 Jul 2012 00:32:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2012/07/18/guzz-1-3-1-released.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/383361.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2012/07/18/guzz-1-3-1-released.html#Feedback0http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/383361.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/383361.html亲爱的你萌是不是觉得哀家已¾læ”¾å¼ƒäº†ž®è°·å­ï¼Œä¸ä¸ä¸ï¼ŒåŽŸå› åªæ˜¯å› äØ“å“€å®¶æœ€˜q‘比较懒木有更新而已。哀家每òq´æ€ÀLœ‰é‚£ä¹ˆåæ¥ä¸ªæœˆæ˜¯æ¯”较懒的~~【望å¤?/span>

不过åQŒè¿™‹Æ¡æ›´æ–°ç»å¯ÒŽœ‰è´§ï¼åœ?月中发,也用来纪忉|ˆ‘å®¶çš„ž®æ¡”梗殿下吧ã€?/span>

guzz 1.3.1 20120712更新介绍åQ?/strong>

大版本更新噢åQ?/strong>

1. 动态拼接SQL¾lˆäºŽå‘布啦,½{‰çš„花都谢了。现在,乃可以写一个有条äšgçš„sql语句åQŒç„¶åŽåœ¨æ‰§è¡Œæ—Óž¼Œguzz娘会æ ÒŽ®ä¼ å…¥çš„参数构造成真正需要的sql语句åQŒç„¶åŽå†¾l‘定参数执行。古娘默认是åŸÞZºŽVelocity模板实现的,于是动态SQL拼接的语法、灵‹zÀL€§ã€æ˜“用性、学习成本是¾lå¯¹­‘›_¤Ÿçš„,velocity文档也是¾lå¯¹çš„丰富和成熟。来仔细瞧瞧吧:http://code.google.com/p/guzz/wiki/TutorialTemplatedSQLService?wl=zh-Hans

2. 受够了一个一个的æ·ÕdŠ åŸŸå¯¹è±¡åˆ°guzz.xml中?是解放自å·Þqš„æ—¶å€™å•¦ã€‚面对着大半òq´æ¥çš„各¿Uè¯‰æ±‚,1.3.1版这‹Æ¡ç»ˆäºŽè‰¯å¿ƒå‘玎ͼŒå¢žåŠ äº†package-scan功能【泪目】。咱们也可以扫描文äšgòq¶æ‰¹é‡æ·»åŠ business啦。介是这个脑ŒD‹ï¼šhttp://code.google.com/p/guzz/wiki/TutorialHbmPackageScan?wl=zh-Hans

3. 在SQL中写旉™—´ä¸²å°±æŠ¥é”™åQ?虽然是小功能åQŒä½†è½¬ä¹‰å­—符支持˜q™æ¬¡˜q˜æ˜¯æ”‘Ö‡ºæ¥å•¦ã€‚不å®Ïx€•SQL注入åQŒä¸€é—¨å¿ƒæ€æ‹¼æŽ¥SQL语句的孩¾U总¬è¯ïLœ‹˜q™é‡ŒåQ?/span>http://code.google.com/p/guzz/wiki/TutorialGuzzXml?wl=zh-Hans#sql语句中特ŒDŠå­—½W¦è{ä¹?/a> ã€‚搞æ­Õd°±˜q™ä¹ˆçީ吧åQŒå‹‡å£«ä»¬è‡ªå·±è¢«é»‘了求别黑我家ž®è°·å­ã€?/span>

4. JDNI数据源这‹Æ¡ä¹Ÿæ”¯æŒå•¦ã€‚感谢æ‡L波提供的代码。借机也感谢æ‡L波提供的其他代码ã€?/span>
http://code.google.com/p/guzz/wiki/TutorialDatasourceProvider?wl=zh-Hans#guzz内置˜qžæŽ¥æ± å®žçŽ?/a> 

5. å…¶ä»–ž®åŠŸèƒ½å’Œbug修正åQŒæœ¬å®«å°±ä¸åºŸè¯äº†ã€‚亲çˆÞqš„你萌有兴­‘£å°±è‡ªå·±åŽÕd¯¹æ¯”SVN代码吧ã€?/span>


下面照例复制下宣传介¾lã€?/span>

什么是guzz?

guzz是一套用于多数据库编½E‹çš„Java ORM框架åQŒç”¨äºŽæ›¿ä»£hibernateå’ŒibatisåQŒå®žçŽ°åœ¨ä¸€å¥—ç³»¾lŸä¸­è½ÀL¾ä½¿ç”¨å¤šå°æ•°æ®åº“。guzz同时提供通用数据计算和配¾|®ç®¡ç†ç­‰åQŒç®€åŒ–ç³»¾lŸå¤æ‚度åQŒäØ“¾pȝ»Ÿåœ¨æ•°æ®å±‚的设计提供一站式解决æ–ÒŽ¡ˆã€?/span>

guzz主要功能与特点:
  • çŽîC»£å¤§è§„模系¾lŸè®¾è®¡ï¼ŒæŠ€æœ¯ä¸Šå¸æ”¶äº†ibatis/hibernate的优ç‚?/li>
  • 支持应用½E‹åºä½¿ç”¨å¤§é‡çš„æ•°æ®åº“和主从读写分¼›?/li>
  • 支持数据库表在多¾l„机器间水åã^分布åQˆShardåQ‰ï¼Œòq¶è‡ªåŠ¨ç»´æŠ¤å¤š¾l„机器之间的分布式事åŠ?/li>
  • 支持1张表按照业务规则分切成多张小表(ShadowåQ‰ï¼Œòq¶æ”¯æŒæ¯å¼ å°è¡¨æ‹¥æœ‰è‡ªå·Þq‰¹ŒDŠçš„属性字ŒDµï¼ˆCustomåQ?/li>
  • 支持1张大表分切后的小表,分布åˆîC¸åŒçš„æ•°æ®åº“中åQˆVirtualDBåQ?/li>
  • 支持­‘…越范式的特ŒDŠå…³è”、非¾l“构化数据等异构资源POJO模式的统一è¯Õd–
  • 支持¾l„äšg化服务(SOAåQ‰å’ŒæœåŠ¡ç›æ€º’依赖åQŒæž„å»ÞZ¼ä¸?™å¹ç›®å®žæ–½åŸºç¡€òq›_°
  • 提供面向对象的数据库è¯Õd–标签(JSP Taglib)åQŒåŠ å¿«é¡µé¢å±•½Cºå±‚的快速变更、开发与部çÖv
  • 对于大部分场景,支持像hibernate一æ ïLš„对象持久、映ž®„和方便的增删改查,提高开发效çŽ?/li>
  • 对于复杂场景åQŒæ”¯æŒåƒibatisä¸€æ øP¼Œè®©DBA参与SQL设计的复杂数据库操作和优化,以及SQL在线调试
  • 更简‹zã€æ›´å¥½ç”¨ã€æ›´å®ÒŽ˜“控制的批操作接口
  • 支持在线加蝲与调试SQL。按照应用策略,从文ä»?数据åº?Web Service½{‰é€”径åQŒåŠ¨æ€æå–ä¸Žä½¿ç”¨SQL语句åQˆDynamic SQLåQ?/li>
  • 支持配置½Ž¡ç†æœåŠ¡å™¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸€å¥—èÊYä»¶ç³»¾lŸå¯¹æ‰€æœ‰åº”用程序的配置˜q›è¡Œ¾lŸä¸€½Ž¡ç†
™å¹ç›®åœ°å€åQ?/strong>
http://code.google.com/p/guzz/
文档åQ?/strong>http://code.google.com/p/guzz/wiki/AboutGuzz?tm=6
下蝲åQ?/strong>http://code.google.com/p/guzz/downloads/list 
新浪微博åQ?/strong>http://weibo.com/guzzframework
扣扣¾Ÿ¤ï¼š 36429094  218658794
Mail ListåQ?/strong>https://lists.sourceforge.net/lists/listinfo/guzz-mail-users




]]>
chrome扩展½E‹åºâ€œè¶…¾U§æé†’”,源代码开放!http://www.aygfsteel.com/darkbluefeeling/archive/2011/12/01/365281.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Thu, 01 Dec 2011 05:16:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2011/12/01/365281.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/365281.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2011/12/01/365281.html#Feedback1http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/365281.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/365281.html
chrome插äšgåQŒç”¨äºŽç»Ÿä¸€æé†’来自gmail, yahooåQŒhotmailåQŒæ–°‹¹ªå¾®åšã€‚。。等多家ä¸ÀLµ¾|‘站的新邮äšg或新通知。喜‹Æ¢çš„æœ‹å‹å¯ä»¥åŠ å…¥æ­¤é¡¹ç›®ï¼Œ¾l§ç®‹åŠ å¯¹æ›´å¤š¾|‘站的支持! 

http://code.google.com/p/notifyall/ 


]]>
guzz1.2.9多数据库框架更新发布http://www.aygfsteel.com/darkbluefeeling/archive/2011/08/30/357584.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Tue, 30 Aug 2011 09:11:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2011/08/30/357584.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/357584.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2011/08/30/357584.html#Feedback1http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/357584.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/357584.html
如无意外åQŒæœ¬‹Æ¡æ›´æ–îCØ“1.2.9最后一‹Æ¡æ›´æ–ŽÍ¼ŒéšåŽž®†è¿›è¡Œä¸‹ä¸€ä¸ªå¤§ç‰ˆæœ¬çš„开发,设计新的功能åQŒæ¬¢˜qŽæä¾›æƒ³æ³•ã€?/strong> 

guzz 1.2.9 20110830更新介绍åQ?/strong> 

本次更新åQ?/strong> 

1. fix issue 16. 为paramMapping 增加了type属性,用于直接指定参数¾cÕdž‹åQŒç”¨äºŽåœ¨æ²¡æœ‰java属性直接可用的情况下,为参数设¾|®å¼º¾cÕdž‹ã€?nbsp;

2. fix issue 14, 15。允许基于对象的数字¾cÕdž‹åQŒå¦‚Long, Integer讄¡½®å’ŒèŽ·å–null倹{€‚修正了nullValue属性设¾|®åŽæ— æ•ˆçš„bugã€?”null”ä½œäØ“nullValue的保留字åQŒç”¨äºŽå°†é»˜è®¤å€ÆD®¾¾|®äØ“java null对象ã€?nbsp;

3. 增加了hbm.xmlä¸­æ–°æ ¼å¼çš„æ”¯æŒã€‚æ–°æ”¯æŒçš„æ ¼å¼äØ“åQ?nbsp;
<property name="xxx" type="java.lang.Long"> 
            <column name="col_xxxx" precision="18" scale="0" not-null="true"> 
                <comment>注释xxxx</comment> 
            </column> 
        </property> 

4. 增加了对½Iºsql参数的检‹¹‹ã€‚如 select xxx where abc in() xxxåQ›å½“in 操作集合为空æ—Óž¼Œç›´æŽ¥˜q”回查询¾l“果为空åQŒé¿å…sql错误。检‹¹‹ä»…限于åŸÞZºŽtaglibå’ŒSeachExpression对象化的查询ã€?nbsp;

5. 修订了配¾|®ç®¡ç†ä¸­åQŒè¿žæŽ¥æ± ¾cÕdž‹å‚数无法重复è¯Õd–çš„bugã€?nbsp;

6. 工程æ”ÒŽˆäº†maven½Ž¡ç†ã€?nbsp;

什么是guzz? 

guzz是一套用于多数据库编½E‹çš„ORM框架åQŒç”¨äºŽæ›¿ä»£hibernateå’ŒibatisåQŒå®žçŽ°åœ¨ä¸€å¥—ç³»¾lŸä¸­è½ÀL¾ä½¿ç”¨å¤šå°æ•°æ®åº“。guzz同时提供通用数据计算和配¾|®ç®¡ç†ç­‰åQŒç®€åŒ–ç³»¾lŸå¤æ‚度åQŒäØ“¾pȝ»Ÿåœ¨æ•°æ®å±‚的设计提供一站式解决æ–ÒŽ¡ˆã€?br />
guzz主要功能与特点: 
  • çŽîC»£å¤§è§„模系¾lŸè®¾è®¡ï¼ŒæŠ€æœ¯ä¸Šå¸æ”¶äº†ibatis/hibernate的优ç‚?/li>
  • 支持应用½E‹åºä½¿ç”¨å¤§é‡çš„æ•°æ®åº“和主从读写分¼›?/li>
  • 支持数据库表在多¾l„机器间水åã^分布åQˆShardåQ‰ï¼Œòq¶è‡ªåŠ¨ç»´æŠ¤å¤š¾l„机器之间的分布式事åŠ?/li>
  • 支持1张表按照业务规则分切成多张小表(ShadowåQ‰ï¼Œòq¶æ”¯æŒæ¯å¼ å°è¡¨æ‹¥æœ‰è‡ªå·Þq‰¹ŒDŠçš„属性字ŒDµï¼ˆCustomåQ?/li>
  • 支持1张大表分切后的小表,分布åˆîC¸åŒçš„æ•°æ®åº“中åQˆVirtualDBåQ?/li>
  • 支持­‘…越范式的特ŒDŠå…³è”、非¾l“构化数据等异构资源POJO模式的统一è¯Õd–
  • 支持¾l„äšg化服务(SOAåQ‰å’ŒæœåŠ¡ç›æ€º’依赖åQŒæž„å»ÞZ¼ä¸?™å¹ç›®å®žæ–½åŸºç¡€òq›_°
  • 提供面向对象的数据库è¯Õd–标签(JSP Taglib)åQŒåŠ å¿«é¡µé¢å±•½Cºå±‚的快速变更、开发与部çÖv
  • 对于大部分场景,支持像hibernate一æ ïLš„对象持久、映ž®„和方便的增删改查,提高开发效çŽ?/li>
  • 对于复杂场景åQŒæ”¯æŒåƒibatisä¸€æ øP¼Œè®©DBA参与SQL设计的复杂数据库操作和优化,以及SQL在线调试
  • 更简‹zã€æ›´å¥½ç”¨ã€æ›´å®ÒŽ˜“控制的批操作接口
  • 支持在线加蝲与调试SQL。按照应用策略,从文ä»?数据åº?Web Service½{‰é€”径åQŒåŠ¨æ€æå–ä¸Žä½¿ç”¨SQL语句åQˆDynamic SQLåQ?/li>
  • 支持配置½Ž¡ç†æœåŠ¡å™¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸€å¥—èÊYä»¶ç³»¾lŸå¯¹æ‰€æœ‰åº”用程序的配置˜q›è¡Œ¾lŸä¸€½Ž¡ç†
™å¹ç›®åœ°å€åQ?/strong>http://code.google.com/p/guzz/ 
文档åQ?/strong>http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6 
下蝲åQ?/strong>http://code.google.com/p/guzz/downloads/list 


]]>
通用操作日志¾pȝ»Ÿè®¾è®¡ã€‚一‹Æ¡ç¼–写,所有项目共同ä‹É用!http://www.aygfsteel.com/darkbluefeeling/archive/2011/08/01/355509.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Mon, 01 Aug 2011 10:35:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2011/08/01/355509.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/355509.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2011/08/01/355509.html#Feedback2http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/355509.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/355509.htmlåŸÞZºŽåˆ†è¡¨å’Œè‡ªå®šä¹‰è¡¨ç»“构的日志¾pȝ»Ÿã€‚真正èƒö够灵‹zȝš„åQŒå®žçŽ°æˆæœ¬è¾ƒä½Žçš„é€šç”¨æ—¥å¿—æž¶æž„ã€?nbsp;

新浪微盘下蝲PDF文档åQ?a target="_blank" style="color: #006699; text-decoration: underline; ">http://t.cn/aY8XIT 





]]>
guzz1.2.9更新发布åQŒæ”¯æŒé€‰ä‹D服务http://www.aygfsteel.com/darkbluefeeling/archive/2011/07/29/355282.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Fri, 29 Jul 2011 01:14:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2011/07/29/355282.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/355282.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2011/07/29/355282.html#Feedback6http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/355282.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/355282.html
guzz 1.2.9更新介绍åQ?/strong> 

本次更新åQ?/strong> 

1. 优化了批操作接口。增加了默认的自动提交和清除选项åQŒä‹É得调用者可以连¾l­æ’入百万记录而不用自å·Þp®¡æ•ŽÍ¼Œæ‰‹å·¥åˆ†batchSize提交。默认batchSize的大ž®æ ¹æ®æ•°æ®åº“¾cÕdž‹å’Œç‰ˆæœ¬ï¼Œè‡ªåŠ¨é€‰æ‹©æ€§ä­h比最合适的åQ›å½“然调用者也可以在程序中修改ã€?nbsp;

2. 新提供Leader服务接口。Leader接口用于在集¾Ÿ¤çŽ¯å¢ƒä¸‹¼‹®è®¤è‡ªå·±æ˜¯ä¸æ˜¯ä¸»æœºï¼Œä¸€ä¸ªé›†¾Ÿ¤ä¸‹ä¸€èˆ¬åªå…è®¸1åîC¸»æœºã€‚新提供的LeaderServiceä»…äØ“æŽ¥å£åQŒå¼€å‘者需要根据自íw«æƒ…况选择适合自己的实现。halo-cloud工程实现了基于zookeeperçš„Leader服务åQŒä»£ç ï¼š[http://code.google.com/p/halo-cloud/source/browse/trunk/misc/com/guzzservices/version/impl/ZKLeaderElectionServiceImpl.java] 

什么是guzz? 

guzz是一套用于多数据库编½E‹çš„ORM框架åQŒç”¨äºŽæ›¿ä»£hibernateå’ŒibatisåQŒå®žçŽ°åœ¨ä¸€å¥—ç³»¾lŸä¸­è½ÀL¾ä½¿ç”¨å¤šå°æ•°æ®åº“。guzz同时提供通用数据计算和配¾|®ç®¡ç†ç­‰åQŒç®€åŒ–ç³»¾lŸå¤æ‚度åQŒäØ“¾pȝ»Ÿåœ¨æ•°æ®å±‚的设计提供一站式解决æ–ÒŽ¡ˆã€?br />
guzz主要功能与特点: 
  • çŽîC»£å¤§è§„模系¾lŸè®¾è®¡ï¼ŒæŠ€æœ¯ä¸Šå¸æ”¶äº†ibatis/hibernate的优ç‚?/li>
  • 支持应用½E‹åºä½¿ç”¨å¤§é‡çš„æ•°æ®åº“和主从读写分¼›?/li>
  • 支持数据库表在多¾l„机器间水åã^分布åQˆShardåQ‰ï¼Œòq¶è‡ªåŠ¨ç»´æŠ¤å¤š¾l„机器之间的分布式事åŠ?/li>
  • 支持1张表按照业务规则分切成多张小表(ShadowåQ‰ï¼Œòq¶æ”¯æŒæ¯å¼ å°è¡¨æ‹¥æœ‰è‡ªå·Þq‰¹ŒDŠçš„属性字ŒDµï¼ˆCustomåQ?/li>
  • 支持1张大表分切后的小表,分布åˆîC¸åŒçš„æ•°æ®åº“中åQˆVirtualDBåQ?/li>
  • 支持­‘…越范式的特ŒDŠå…³è”、非¾l“构化数据等异构资源POJO模式的统一è¯Õd–
  • 支持¾l„äšg化服务(SOAåQ‰å’ŒæœåŠ¡ç›æ€º’依赖åQŒæž„å»ÞZ¼ä¸?™å¹ç›®å®žæ–½åŸºç¡€òq›_°
  • 提供面向对象的数据库è¯Õd–标签(JSP Taglib)åQŒåŠ å¿«é¡µé¢å±•½Cºå±‚的快速变更、开发与部çÖv
  • 对于大部分场景,支持像hibernate一æ ïLš„对象持久、映ž®„和方便的增删改查,提高开发效çŽ?/li>
  • 对于复杂场景åQŒæ”¯æŒåƒibatisä¸€æ øP¼Œè®©DBA参与SQL设计的复杂数据库操作和优化,以及SQL在线调试
  • 更简‹zã€æ›´å¥½ç”¨ã€æ›´å®ÒŽ˜“控制的批操作接口
  • 支持在线加蝲与调试SQL。按照应用策略,从文ä»?数据åº?Web Service½{‰é€”径åQŒåŠ¨æ€æå–ä¸Žä½¿ç”¨SQL语句åQˆDynamic SQLåQ?/li>
  • 支持配置½Ž¡ç†æœåŠ¡å™¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸€å¥—èÊYä»¶ç³»¾lŸå¯¹æ‰€æœ‰åº”用程序的配置˜q›è¡Œ¾lŸä¸€½Ž¡ç†
™å¹ç›®åœ°å€åQ?/strong>http://code.google.com/p/guzz/ 
文档åQ?/strong>http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6 
下蝲åQ?/strong>http://code.google.com/p/guzz/downloads/list 



]]>
halo-cloud开源私有云òq›_° 新增调度ä»ÕdŠ¡å’Œé‚®ä»¶å‘é€æœåŠ?/title><link>http://www.aygfsteel.com/darkbluefeeling/archive/2011/07/07/353842.html</link><dc:creator>æ·Þp“è‰²å¿ƒæƒ?/dc:creator><author>æ·Þp“è‰²å¿ƒæƒ?/author><pubDate>Thu, 07 Jul 2011 00:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/darkbluefeeling/archive/2011/07/07/353842.html</guid><wfw:comment>http://www.aygfsteel.com/darkbluefeeling/comments/353842.html</wfw:comment><comments>http://www.aygfsteel.com/darkbluefeeling/archive/2011/07/07/353842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/353842.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/darkbluefeeling/services/trackbacks/353842.html</trackback:ping><description><![CDATA[<span id="wmqeeuq" class="Apple-style-span" style="font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 25px; "><span style="font-size: large; "><strong style="font-weight: bold; ">halo-cloud介绍</strong></span> <br /><br /><strong style="font-weight: bold; ">halo-cloud是什么?</strong> <br /><br />可由1åˆ?00台机器组成,òq¶ç”¨æ™®é€šç¼–½E‹æ–¹å¼æ‰©å±•çš„ž®åž‹¿Uæœ‰äº‘计½Ž—åã^台ã€?nbsp;<br /><br /><strong style="font-weight: bold; ">halo-cloud有何价å€û|¼Ÿ</strong> <br /><br />不是每个公司都像google、像淘宝、像新浪微博一样庞大,需要复杂的成千上万台机器组成的大型云计½Ž—åã^収ͼŒé‚£æ ·æŠ€æœ¯å¤ªå¤æ‚åQŒæˆæœ¬å¤ªé«˜ã€?nbsp;<br /><br />更没有多ž®‘ä¸­å›½å…¬åæ€¼šä½¿ç”¨GAE、Amaze EC之类公共云åã^収ͼŒé‚£æ ·¾|‘络吃不消ã€?nbsp;<br /><br />对于普通的公司åQ?00åîC»¥å†…机器组成的¿Uæœ‰äº‘是最好的选择。规模适中、容易开发、易于维护ã€?nbsp;<br /><br />我们对云不炒作,不报òqÀLƒ³åQŒåªæ˜¯å¸Œæœ›æœ‰äº†ä»–åQŒæˆ‘在一个项目中写过一遍的功能代码åQŒåœ¨ä»¥åŽçš„é¡¹ç›®ä¸­å¯ä»¥ç›´æŽ¥ç”¨ï¼Œä¸ç”¨é‡å¤å¼€å‘ã€‚æˆ‘ä¹Ÿä¸éœ€è¦ä»€ä¹ˆè¿™è§„èŒƒé‚£è§„èŒƒï¼Œå› äØ“æˆ‘ä»Žä¸æ‰“½Ž—开放成公共云,够我的主要项目用åQŒé€Ÿåº¦å¿«å°±å¥½ã€?nbsp;<br /><br />æ€Èš„来说åQšæˆ‘å¸Œæœ›æˆ‘çš„äº‘æ˜¯ä¸ªäº‘åQŒæ²¡æœ‰å•炚w—®é¢˜ï¼›æˆ‘希望我的云可以节省我的开发和¾l´æŠ¤æˆæœ¬åQŒåŸº¼‹€åŠŸèƒ½¾lŸç»Ÿåªç”¨å†™ä¸€éå°±å¯ä»¥å¤ç”¨åQ›æˆ‘希望我的云速度快,不要有SOAP Web Service之类的问题,当我真的需要性能的时候;我希望我的云能让现有的团队来¾l´æŠ¤å’Œç‘ô¾l­å¼€å‘,不要学一大堆东西åQŒç”šè‡³ç‰µæ‰¯åˆ°ä¸ªäh悟性上ã€?nbsp;<br /><br />˜q™å°±æ˜¯halo-cloud诞生的理由。私有的、小型的、简单的云计½Ž—基¼‹€æœåŠ¡òq›_°ã€‚你可以直接使用上面的服务,也可以低成本的在上面开发自å·Þqš„æ–°æœåŠ¡ã€?nbsp;<br /><br />PSåQšå¦‚果你觉得云这个名字不爽,ž®±å«ä»–分布式基础服务吧ã€?nbsp;<br /><br /><span style="font-size: large; "><strong style="font-weight: bold; ">主要更新åQ?/strong></span> <br /><br />1. 新增ä»ÕdŠ¡è°ƒåº¦åŠŸèƒ½ã€?strong style="font-weight: bold; ">™å¹ç›®ä»·å€û|¼š</strong>使用quartz¾lŸä¸€å®žçŽ°è°ƒåº¦åQŒå¯¹äºŽjava™å¹ç›®å¼€å‘基本不在需要配¾|®è°ƒåº¦ï¼›å¯¹äºŽphp½{‰ä¸å…·å¤‡ä»ÕdŠ¡åŠŸèƒ½çš„è¯­­a€åQŒè‡ªåŠ¨èŽ·å–æŸä¸ªé¡µé¢å®šæ—¶æ‰§è¡Œçš„æ–°åŠŸèƒ½ã€?nbsp;<br /><br />2. 新增邮äšg发送功能ã€?strong style="font-weight: bold; ">™å¹ç›®ä»·å€û|¼š</strong>对于™å¹ç›®å¼€å‘,基本不用在配¾|®é‡å¤çš„配置邮äšg服务器,¾~–写邮äšg发送代码。只需要调用一个API卛_¯ã€?nbsp;<br /><br />3. 服务器端增加客户端感知功能。编写服务器端程序时åQˆæœåŠ¡æä¾›è€…ï¼‰åQŒæ–°æŽ¥å£å…è®¸æä¾›è€…获知当前调用者的IP地址和端口,用于˜q›è¡Œæƒé™æ ¡éªŒ½{‰ã€?nbsp;<br /><br /><strong style="font-weight: bold; ">详细说明åQ?/strong><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/halo-cloud/wiki/AboutFAQ</a> <br /><br /><strong style="font-weight: bold; ">™å¹ç›®åœ°å€åQ?/strong><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/halo-cloud/</a> <br /><br /><br /><br /><br /><br /></span><img src ="http://www.aygfsteel.com/darkbluefeeling/aggbug/353842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/darkbluefeeling/" target="_blank">æ·Þp“è‰²å¿ƒæƒ?/a> 2011-07-07 08:43 <a href="http://www.aygfsteel.com/darkbluefeeling/archive/2011/07/07/353842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大型¾pȝ»Ÿè®¾è®¡½W?è¯?-可扩展的数据库层架构设计 PDF分äínhttp://www.aygfsteel.com/darkbluefeeling/archive/2011/03/29/347225.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Tue, 29 Mar 2011 09:23:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2011/03/29/347225.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/347225.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2011/03/29/347225.html#Feedback0http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/347225.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/347225.html
前言åQ?

对于大规模系¾lŸè€Œè¨€åQŒæœ€å¤æ‚åQŒå¾€å¾€ä¹Ÿæ˜¯æœ€å¤§çš„æ€§èƒ½ç“‰™¢ˆåQŒä¸»è¦éƒ½äº§ç”Ÿåœ¨æ•°æ®å±‚。对于大型系¾lŸæ•°æ®å±‚的设计,主要包括¾~“å­˜¾pȝ»Ÿå’Œæ•°æ®åº“的可扩展性两斚w¢ã€‚缓存系¾lŸæ¯”较简单,¾|‘上讨论的也比较多,æ–ÒŽ¡ˆä¹Ÿç›¸å¯ÒŽˆç†Ÿï¼Œä¸€èˆ¬æ¥è¯´åªè¦éƒ¨¾|²ä¸€å¤§å †memcached之类的缓存服务器ž®±å¯ä»¥è§£å†³äº†åQŒæ‰©å±•性也好;但对于可扩展的数据库层架构设计,通用æ–ÒŽ¡ˆè¾ƒå°‘åQŒç½‘上资料更是寥寥无几ã€?

˜q™ä¹Ÿæœ‰æƒ…可原åQŒçŽ°åœ¨çš„ä¸ÀLµé€šç”¨æ•°æ®åº“框æžÓž¼Œå¦‚hibernateå’Œibatis基本上都只支æŒ?个系¾lŸè¿è¡Œåœ¨1台数据库上。对应的åQŒåŸºäºŽè¿™äº›æ¡†æž¶çš„¾pȝ»ŸåQŒä¹ŸåŸºæœ¬ä¸Šåªèƒ½è¿è¡Œåœ¨å•台数据库上了,框架å¯ÒŽ•°æ®åº“扩展性的支持几乎没有åQŒå¼€å‘者也只能被迫接受ã€?

˜q™ç¯‡æ–‡æ¡£åQŒä¸»è¦è¡¥å……“重要”却被主‹¹é—å¤Þqš„“数据库层可扩展”架构设计,让你的系¾lŸåœ¨â€œéœ€è¦â€æ—¶åQŒå¯ä»¥éšæ—‰™€šè¿‡å¢žåŠ æœºå™¨ž®Þpƒ½æœ€½Ž€å•的解决数据库的性能瓉™¢ˆã€?  é˜…读全文

]]>
数据库分布式设计很简å?-guzz分布式切表功能正式发å¸?/title><link>http://www.aygfsteel.com/darkbluefeeling/archive/2011/02/10/344018.html</link><dc:creator>æ·Þp“è‰²å¿ƒæƒ?/dc:creator><author>æ·Þp“è‰²å¿ƒæƒ?/author><pubDate>Thu, 10 Feb 2011 07:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/darkbluefeeling/archive/2011/02/10/344018.html</guid><wfw:comment>http://www.aygfsteel.com/darkbluefeeling/comments/344018.html</wfw:comment><comments>http://www.aygfsteel.com/darkbluefeeling/archive/2011/02/10/344018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/344018.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/darkbluefeeling/services/trackbacks/344018.html</trackback:ping><description><![CDATA[<span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">今天åQŒç»˜q‡ä¸€ä¸ªå¤šæœˆçš„¾U¿ä¸Š˜qè¡ŒåQŒæˆ‘们很荣幸的发布guzz 1.2.9分布式切表功能。分布式切表是指ž®†ä¸€å¼ å¤§è¡¨åˆ†åˆ‡æˆN张小表,òq¶å°†˜q™äº›ž®è¡¨å‚¨å­˜åˆîC¸åŒçš„æ•°æ®åº“(机器åQ‰ä¸­åQŒä»Žè€Œå®žçŽ°æ•°æ®çš„åˆ†æ•£å­˜å‚¨å’Œåˆ†æ•£æŸ¥è¯¢ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">对于大型¾pȝ»Ÿå’Œæ•°æ®è§„模较大的¾pȝ»ŸåQŒåˆ†å¸ƒå¼åˆ‡è¡¨æä¾›äº†éžå¸¸å¥½çš„è§£å†Ïx–¹æ¡ˆï¼Œæœ‰æ•ˆçš„解决了大数据分散存储、查询、归档和¾l´æŠ¤½{‰è¯¸å¤šçš„问题。但市面上流行的数据层框æžÓž¼Œå¯¹äºŽæ­¤ç‰¹æ€§å‡ ä¹Žæ— äººæ¶‰åŠã€‚guzz首次ž®†è¿™¿UæŠ€æœ¯åšæˆäº†é€šç”¨æ¡†æž¶¾U§åˆ«åQŒæ›´å…¨é¢çš„æä¾?#8220;一站式数据层解å†Ïx–¹æ¡?#8221;ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><span style="font-size: large; "><strong style="font-weight: bold; ">guzz 1.2.9 build20110209 更新介绍åQ?/strong></span></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">分布式切表:</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">guzzç‰ÒŽ€§ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">分布式切表以guzzçš„Shadow Table为基¼‹€ã€‚在Shadow Table的基¼‹€ä¸Šï¼Œé€šè¿‡é…ç½®å®ŒæˆåQŒåº”用不需要修改现有代码即可完成小表的分布式存储。具体请参看åQ?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialVirtualDB?wl=zh-Hans</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">è‡Ïx­¤åQŒguzz已经通过6个层面完成了全面的数据分切支持:</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span> <ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">数据表比较多åQŒæ€ÖM½“较大åQŒå°†è¡¨åˆ†åˆîC¸åŒçš„æ•°æ®åº“组中。第3ç« dbgroupåQ?a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialGuzzXml?wl=zh-Hans</a></li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">某些表太大,ž®†å¤§è¡¨åˆ†æˆN张小表。第15ç« ShadowTableåQ?a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialShadowTable?wl=zh-Hans</a></li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">业务比较ç‰ÒŽ®ŠåQŒæ¯å¼ å°è¡¨å¯èƒ½åŒ…含自å·Þqš„ç‰ÒŽ€§å­—ŒDüc€‚第16ç« CustomTableåQ?a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialCustomTable?wl=zh-Hans</a></li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">分成ž®è¡¨åŽï¼Œž®è¡¨å¤ªå¤šåQŒæˆ–在单库中总量太大åQŒå°†ž®è¡¨åˆ†æ•£åˆîC¸åŒçš„æ•°æ®åº“中。第17ç« VirtualDBåQ?a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialVirtualDB?wl=zh-Hans</a></li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">表中的某些字ŒDµå¤ªå¤§ï¼Œæˆ–者有ç‰Òޮп“ä½œè¦æ±‚åQŒå°†˜q™äº›å­—段存到别的地方。第11章自定义加蝲属性:<a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialLazyLoad?wl=zh-Hans</a></li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">讉K—®é‡çš„¼‹®å¤ªé«˜ï¼Œä½¿ç”¨guzz原生支持的读写分¼›»ï¼Œéƒ¨çÖv更多è¯ÀL•°æ®åº“ã€?/li> </ul> <span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">支持记录SQL执行旉™—´åQ?nbsp;</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">在打印执行的SQLå’ŒSQL参数的同æ—Óž¼Œé€šè¿‡ 调试服务åQˆDebugServiceåQ?两个新的参数允许打印出sql执行所èŠÞp´¹çš„æ—¶é—ß_¼Œòq¶ä¸”允许控制只打印执行时间超˜q‡ä¸€å®šæ—¶é•¿çš„sqlè¯­å¥ã€‚æ—¶é—´å•ä½äØ“¾U³ç§’ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">具体请参看:</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/AppendCoreService?wl=zh-Hans</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">支持hbm.xmlçš„package属性:</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">支持配置hbm.xml的类名时åQŒæŒ‡å®špackage。用于支持某些hibernate工具自动生成的配¾|®æ–‡ä»¶ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">å…¶ä»–åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">1. 更改LogService为InsertQueueServiceåQ?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">2. 修复了几个bugã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><span style="font-size: large; "><strong style="font-weight: bold; ">什么是guzz?</strong></span></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架åQŒäØ“¾pȝ»Ÿåœ¨æ•°æ®å±‚的设计提供一站式解决æ–ÒŽ¡ˆã€‚guzz可以看作æ˜?ibatis/hibernate的一大补充和延äŽ×åQŒåƈ可以取代˜q?个东è¥Ñ€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">guzz主要功能与特点:</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span> <ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">çŽîC»£å¤§è§„模系¾lŸè®¾è®¡ï¼ŒæŠ€æœ¯ä¸Šå¸æ”¶äº†ibatis/hibernate的优ç‚?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">对于大部分场景,支持像hibernate一æ ïLš„对象持久、映ž®„和方便的增删改查,提高开发效çŽ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">对于复杂场景åQŒæ”¯æŒåƒibatisä¸€æ øP¼Œè®©DBA参与SQL设计的复杂数据库操作和优化,以及SQL在线调试</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">更简‹zã€æ›´å¥½ç”¨ã€æ›´å®ÒŽ˜“控制的批操作接口</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持在线加蝲与调试SQL。按照应用策略,从文ä»?数据åº?Web Service½{‰é€”径åQŒåŠ¨æ€æå–ä¸Žä½¿ç”¨SQL语句åQˆDynamic SQLåQ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持应用½E‹åºä½¿ç”¨å¤§é‡çš„æ•°æ®åº“和主从读写分¼›?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持数据库表在多¾l„机器间水åã^分布åQˆShardåQ‰ï¼Œòq¶è‡ªåŠ¨ç»´æŠ¤å¤š¾l„机器之间的分布式事åŠ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持1张表按照业务规则分切成多张小表(ShadowåQ‰ï¼Œòq¶æ”¯æŒæ¯å¼ å°è¡¨æ‹¥æœ‰è‡ªå·Þq‰¹ŒDŠçš„属性字ŒDµï¼ˆCustomåQ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持1张大表分切后的小表,分布åˆîC¸åŒçš„æ•°æ®åº“中åQˆVirtualDBåQ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持­‘…越范式的特ŒDŠå…³è”、非¾l“构化数据等异构资源POJO模式的统一è¯Õd–</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持¾l„äšg化服务(SOAåQ‰å’ŒæœåŠ¡ç›æ€º’依赖åQŒæž„å»ÞZ¼ä¸?™å¹ç›®å®žæ–½åŸºç¡€òq›_°</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">提供面向对象的数据库è¯Õd–标签(JSP Taglib)åQŒåŠ å¿«é¡µé¢å±•½Cºå±‚的快速变更、开发与部çÖv</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持配置½Ž¡ç†æœåŠ¡å™¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸€å¥—èÊYä»¶ç³»¾lŸå¯¹æ‰€æœ‰åº”用程序的配置˜q›è¡Œ¾lŸä¸€½Ž¡ç†</li> </ul> <span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">™å¹ç›®åœ°å€åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">文档åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">下蝲åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/downloads/list</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><span style="font-size: large; "><strong style="font-weight: bold; ">下一个build更新计划åQ?/strong></span></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span> <ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">做什么哪åQŸå¼€æºä¸€ä¸ªäº‘服务™å¹ç›®åQ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">辅助诊断¾cÕdŠŸèƒ½ï¼Ÿ</li> </ul> <span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span> <img src ="http://www.aygfsteel.com/darkbluefeeling/aggbug/344018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/darkbluefeeling/" target="_blank">æ·Þp“è‰²å¿ƒæƒ?/a> 2011-02-10 15:31 <a href="http://www.aygfsteel.com/darkbluefeeling/archive/2011/02/10/344018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>服务发布åQšGuzzServices支持PHP客户ç«?/title><link>http://www.aygfsteel.com/darkbluefeeling/archive/2010/12/26/341580.html</link><dc:creator>æ·Þp“è‰²å¿ƒæƒ?/dc:creator><author>æ·Þp“è‰²å¿ƒæƒ?/author><pubDate>Sun, 26 Dec 2010 13:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/darkbluefeeling/archive/2010/12/26/341580.html</guid><wfw:comment>http://www.aygfsteel.com/darkbluefeeling/comments/341580.html</wfw:comment><comments>http://www.aygfsteel.com/darkbluefeeling/archive/2010/12/26/341580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/341580.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/darkbluefeeling/services/trackbacks/341580.html</trackback:ping><description><![CDATA[<span style="color: #444444; font-family: Arial, Helvetica, sans-serif; "> <p mid="221101223865898935" type="1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 6px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; line-height: 22px; font-size: 14px; "><span style="font-family: verdana, arial, sans-serif; font-size: 13px; line-height: 18px; color: #000000; ">GuzzServicesçš„PHP客户端实玎ͼŒå·²ç»å®žçŽ°äº†ï¼šIP反查åQŒæ•æ„Ÿè¯å®¡æŸ¥åQŒä»¥åŠä»Žhtml代码中抽取纯文本和图片ã€?/span></p> <p mid="221101223865898935" type="1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 6px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; line-height: 22px; font-size: 14px; "><span style="font-family: verdana, arial, sans-serif; font-size: 13px; line-height: 18px; color: #000000; "> <p style="margin-top: 1em; margin-bottom: 1em; padding-top: 0px; padding-bottom: 0px; margin-right: 0px; margin-left: 0px; padding-right: 0px; padding-left: 0px; display: block; ">需要php服务器支持jsonåQŒé…¾|®æ–¹å¼ï¼š<a style="color: #365da0; font-weight: bold; text-decoration: none; ">http://php.net/manual/en/book.json.php</a></p> <p style="margin-top: 1em; margin-bottom: 1em; padding-top: 0px; padding-bottom: 0px; margin-right: 0px; margin-left: 0px; padding-right: 0px; padding-left: 0px; display: block; ">客户端的使用方式请参看examples.php中的例子ã€?/p> <p style="margin-top: 1em; margin-bottom: 1em; padding-top: 0px; padding-bottom: 0px; margin-right: 0px; margin-left: 0px; padding-right: 0px; padding-left: 0px; display: block; "><a style="color: #365da0; font-weight: bold; text-decoration: none; ">php客户端下è½?/a></p> <p style="margin-top: 1em; margin-bottom: 1em; padding-top: 0px; padding-bottom: 0px; margin-right: 0px; margin-left: 0px; padding-right: 0px; padding-left: 0px; display: block; "><br /> </p> </span></p> </span> <img src ="http://www.aygfsteel.com/darkbluefeeling/aggbug/341580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/darkbluefeeling/" target="_blank">æ·Þp“è‰²å¿ƒæƒ?/a> 2010-12-26 21:09 <a href="http://www.aygfsteel.com/darkbluefeeling/archive/2010/12/26/341580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>guzz1.2.9 build20101021发布åQŒæ–°å¢žä¸¤™å¹åŽŸåˆ›åŠŸèƒ?/title><link>http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/25/336049.html</link><dc:creator>æ·Þp“è‰²å¿ƒæƒ?/dc:creator><author>æ·Þp“è‰²å¿ƒæƒ?/author><pubDate>Mon, 25 Oct 2010 00:17:00 GMT</pubDate><guid>http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/25/336049.html</guid><wfw:comment>http://www.aygfsteel.com/darkbluefeeling/comments/336049.html</wfw:comment><comments>http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/25/336049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/336049.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/darkbluefeeling/services/trackbacks/336049.html</trackback:ping><description><![CDATA[<span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架åQŒäØ“¾pȝ»Ÿåœ¨æ•°æ®å±‚的设计提供一站式解决æ–ÒŽ¡ˆã€‚guzz可以看作æ˜?ibatis/hibernate的一大的延äŽ×åQŒåƈ可以取代˜q?个东è¥Ñ€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">guzz主要功能与特点:</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span> <ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">çŽîC»£å¤§è§„模系¾lŸè®¾è®¡ï¼ŒæŠ€æœ¯ä¸Šå¸æ”¶äº†ibatis/hibernate的优ç‚?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持像hibernate一æ ïLš„对象化持久、映ž®„和方便的增删改æŸ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持像ibatisä¸€æ øP¼Œè®©dba参与sql设计的复杂数据库操作和优åŒ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持在线加蝲与调试SQL。按照应用策略,从文ä»?数据åº?Web Service½{‰é€”径åQŒåŠ¨æ€æå–ä¸Žä½¿ç”¨SQL语句åQˆDynamic SQLåQ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持应用½E‹åºä½¿ç”¨å¤§é‡çš„æ•°æ®åº“和主从读写分¼›?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持­‘…越范式的特ŒDŠå…³è”、非¾l“构化数据等异构资源的统一½Ž¡ç†</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持数据表在多组机器间水òq›_ˆ†å¸ƒï¼ˆShardåQ‰ï¼Œòq¶è‡ªåŠ¨ç»´æŠ¤å¤š¾l„机器之间的分布式事åŠ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持1张表按照业务规则分切成多张小表(ShadowåQ‰ï¼Œòq¶æ”¯æŒæ¯å¼ å°è¡¨æ‹¥æœ‰è‡ªå·Þq‰¹ŒDŠçš„属性字ŒDµï¼ˆCustomåQ?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持¾l„äšg化服务(ServiceåQ‰ï¼Œä»¥åŠæœåŠ¡é—´ä¾èµ–ï¼Œå¸®åŠ©æž„å¾ä¼ä¸š/™å¹ç›®å®žæ–½åŸºç¡€òq›_°</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">提供面向对象的数据库è¯Õd–标签(JSP Taglib)åQŒåŠ å¿«é¡µé¢å±•½Cºå±‚的快速变更、开发与部çÖv</li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持配置½Ž¡ç†æœåŠ¡å™¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸€å¥—èÊYä»¶ç³»¾lŸå¯¹æ‰€æœ‰åº”用程序的配置˜q›è¡Œ¾lŸä¸€½Ž¡ç†</li> </ul> <span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">™å¹ç›®åœ°å€åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">文档åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">下蝲åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/downloads/list</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><span style="font-size: large; "><strong style="font-weight: bold; ">guzz 1.2.9 build20101021 更新介绍åQ?/strong></span></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">增强服务åQŒæ”¯æŒæœåŠ¡é—´ç›æ€º’依赖</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">服务在配¾|®æ—¶åQŒé€šè¿‡dependsOn属性设¾|®ä¾èµ–的服务åQŒguzz˜q›è¡ŒIOC注入。例如您ž®†ä¸€å¥—通信协议设计成一个通信服务åQŒå½“其他服务需要进行通信æ—Óž¼Œç›´æŽ¥ä¾èµ–通信服务完成˜qœç¨‹è°ƒç”¨æˆ–数据传送ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">ä¸ÞZº†è¯´æ˜ŽæœåŠ¡çš„ä­hå€ég¸Žä½¿ç”¨æ–¹å¼åQŒguzz设计了一些常用的基础服务åQŒä¾›‹¹‹è¯•或者直接ä‹É用。ä‹É用时åQŒä¸€èˆ¬åªéœ€è¦å‡ è¡Œä»£ç ï¼Œž®±å¯ä»¥å®Œæˆæœ¬æ¥çš„一个大模块。限于篇òq…,请参看:</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://www.guzzservices.com/category/developer-guide/</a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">guzzservices.com中目前提供的服务包括åQšå¯ä»¥ä¸»åŠ¨æŽ¨é€ä¿®æ”¹åŽé…ç½®™å¹çš„¾pȝ»Ÿé…ç½®½Ž¡ç†åQŒæ•æ„Ÿè¯½Ž¡ç†ä¸Žæ–‡å­—过滤服务,以及通过IP查询地理位置服务。后¾l­è¿˜ž®†å¢žåŠ ä¸€äº›ã€‚è¯•ä¸€ä¸‹ï¼Œž®Þpƒ½å‘现guzz服务带来的开发与¾l´æŠ¤ä¼˜åŠ¿ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">服务以及注入文档åQ?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><a href="http://code.google.com/p/guzz/wiki/TutorialService?wl=zh-Hans#配置服务åQ? target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialService?wl=zh-Hans#配置服务åQ?/a></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">新增random主键生成器(原创åQ‰ï¼š </strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">random主键用于解决guidå’Œuuid产生的主键在较短旉™—´å†…比较类ä¼û|¼Œè™½ç„¶ä¸ä¼šé‡å¤åQŒä½†å®ÒŽ˜“被猜出来的问题。对于某些应用场景,如对外APIçš„keyåQŒéœ€è¦ç¡®ä¿æ— æ³•被猜出åQŒè¿™æ—¶å°±éœ€è¦random主键½{–ç•¥ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">random主键生成一ŒDµéšæœºå­—½W¦ä¸²åQŒç”±æ•°å­—和小写字母组成。随æœÞZ¸²é•¿åº¦é»˜è®¤ä¸?2åQŒå¯ä»¥é€šè¿‡length属性进行调整ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><strong style="font-weight: bold; ">å…¶ä»–åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">1. 修复了一些bugåQ?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; ">2. 完成英文版文档翻译ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><span style="font-size: large; "><strong style="font-weight: bold; ">下一个build更新计划åQ?/strong></span></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "><br /> </span> <ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 14px; line-height: 25px; "> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">支持ž®†ä¸€å¼ å¤§è¡¨åˆ†åˆ‡åˆ°å¤šå°æœºå™¨ä¸Šã€?/li> <li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">å…¶ä»–</li> <li></li> </ul> <img src ="http://www.aygfsteel.com/darkbluefeeling/aggbug/336049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/darkbluefeeling/" target="_blank">æ·Þp“è‰²å¿ƒæƒ?/a> 2010-10-25 08:17 <a href="http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/25/336049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重要变动åQ?行代码实现IP到地理位¾|®åæŸ¥æœåŠ¡ï¼Œåœ°å€å’ŒAPI变更通知http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/21/335815.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Thu, 21 Oct 2010 12:08:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2010/10/21/335815.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/335815.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/10/21/335815.html#Feedback2http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/335815.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/335815.html服务已经切换至guzzservices.comåQŒåƈ更改了API。请使用新的接口åQŒå…·ä½“参看:http://www.guzzservices.com/2010/man_ip_service/

使用æ—Óž¼Œéœ€è¦å°†guzz升çñ”åˆ?.2.9以及以上版本ã€?/p>

如果您已¾låœ¨ä½¿ç”¨åQŒè¯·ž®½å¿«åˆ‡æ¢ã€‚新的地址应该不会在变化。非常抱歉进行了服务变化ã€?/p>




]]>
数据库分切设计何必纠¾l“于hibernate shard模式åQŒåº”该简单化äº?/title><link>http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/18/335488.html</link><dc:creator>æ·Þp“è‰²å¿ƒæƒ?/dc:creator><author>æ·Þp“è‰²å¿ƒæƒ?/author><pubDate>Mon, 18 Oct 2010 13:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/18/335488.html</guid><wfw:comment>http://www.aygfsteel.com/darkbluefeeling/comments/335488.html</wfw:comment><comments>http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/18/335488.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/335488.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/darkbluefeeling/services/trackbacks/335488.html</trackback:ping><description><![CDATA[<span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">最˜q‘讨论db shard的帖子比较多åQŒæ„Ÿè§‰å¾ˆå¤šéƒ½æ˜¯åœ¨å‚考hibernate shard的思èµ\åQŒä½†hibernate分表真的那么好吗åQŸæˆ‘觉得它最ž®‘有2个问题:</span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">1. æ”ÒŽˆshard后,代码的API调用要变。代码改动很大ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">2. 设计很复杂,不清晎ͼŒé€»è¾‘关系难以理解ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">hibernate shardåŸºæœ¬ä¸Šå°±æ˜¯äØ“äº†shard而对hibernate做的增增补补åQŒå‡‘合用˜q˜è¡ŒåQŒæ ¹æœ¬ä¸å…·å¤‡è®¾è®¡ä¸Šçš„参考ä­h倹{€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">å¯ÒŽ•°æ®åº“分切斚w¢åQŒåˆ°ç›®å‰ä¸ºæ­¢åQŒæˆ‘觉得˜q˜æ˜¯guzz的设计最清晰åQŒå¦‚果我说的不对åQŒæ¬¢˜qŽç†æ€§è®¨è®ºã€‚不½Ž¡æ‚¨æ˜¯å¦ä½¿ç”¨guzzåQŒä½†æ˜¯guzz在数据库分切斚w¢çš„设计,对于清晰的设计模式,比hibernate shard更具有借鉴意义ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; ">guzz垂直切分</strong></span></span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">垂直切分是指ž®†ä¸åŒçš„表分别存储到不同的数据库中。guzz默认配置¾U§æ”¯æŒï¼Œä¸éœ€è¦å†™ä»ÖM½•代码åQŒå¯ä»¥åœ¨ä»ÖM½•时候,在需要时åQŒå°†æ¯å¼ è¡¨å­˜å‚¨åˆ°è‡ªå·±å•独的一¾l„服务器上,应该说是垂直分切的极限了。而且设计上,无论什么时候怎么分切åQŒéƒ½ä¸éœ€è¦ä½ æ”¹åŠ¨ä»£ç ã€‚å¼€å‘æ—¶ä½ å¯ä»¥è®©æ‰€æœ‰è¡¨åœ¨ä¸€ä¸ªåº“ä¸Šï¼›éƒ¨çÖvæ—Óž¼Œåˆ†åˆ°å¤šä¸ªåº“上åQ›ä»¥åŽä¸šåŠ¡å¢žåŠ äº†åQŒå†æ›´åŠ åˆ†æ•£çš„æ”¾ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><strong style="font-weight: bold; ">垂直分切½Ž€å•配¾|®æ–¹å¼ï¼š</strong></span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">1. 声明你要用多ž®‘台数据库,数据库之间什么关¾p…R€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span> <div id="wmqeeuq" class="dp-highlighter" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; background-color: transparent; width: 766px; overflow-x: auto; overflow-y: auto; margin-left: 9px; padding-top: 1px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; line-height: 18px; "> <div id="wmqeeuq" class="bar"> <div id="wmqeeuq" class="tools" style="padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; text-align: left; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; font-weight: bold; ">Xml代码 <embed src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=%20%20%20%20%20%20%20%20%3Cdialect%20class%3D%22org.guzz.dialect.H2Dialect%22%3E%3C%2Fdialect%3E%0A%20%20%20%20%20%20%20%20%3Cdialect%20name%3D%22mysql5dialect%22%20class%3D%22org.guzz.dialect.Mysql5Dialect%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%3Cdialect%20name%3D%22oracle10gdialect%22%20class%3D%22org.guzz.dialect.Oracle10gDialect%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%3Ctran%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdbgroup%20name%3D%22default%22%20masterDBConfigName%3D%22masterDB%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdbgroup%20name%3D%22mysql%22%20masterDBConfigName%3D%22masterDB%22%20slaveDBConfigName%3D%22mysqlSlaveDB%22%20dialectName%3D%22mysql5dialect%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdbgroup%20name%3D%22oracle%22%20masterDBConfigName%3D%22oracleDB%22%20dialectName%3D%22oracle10gdialect%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%3C%2Ftran%3E%20%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></div> </div> <ol start="1" class="dp-xml" style="font-size: 1em; line-height: 1.4em; margin-top: 0px; margin-right: 0px; margin-bottom: 1px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d1d7dc; border-right-color: #d1d7dc; border-bottom-color: #d1d7dc; border-left-color: #d1d7dc; list-style-type: decimal; list-style-position: initial; list-style-image: initial; background-color: #ffffff; color: #2b91af; "> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">dialect</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">class</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"org.guzz.dialect.H2Dialect"</span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">></span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "></</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">dialect</span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">dialect</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"mysql5dialect"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">class</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"org.guzz.dialect.Mysql5Dialect"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">dialect</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"oracle10gdialect"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">class</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"org.guzz.dialect.Oracle10gDialect"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">tran</span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">        <span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">dbgroup</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"default"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">masterDBConfigName</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"masterDB"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">        <span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">dbgroup</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"mysql"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">masterDBConfigName</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"masterDB"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">slaveDBConfigName</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"mysqlSlaveDB"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">dialectName</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"mysql5dialect"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">        <span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">dbgroup</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"oracle"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">masterDBConfigName</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"oracleDB"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">dialectName</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"oracle10gdialect"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "></</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">tran</span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">></span><span style="color: black; ">   </span></span></li> </ol> </div> <span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">˜q™é‡Œæˆ‘们声明äº?¾l„数据库åQŒè€Œä¸”数据库类型还不一栗÷€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">2. å¯Òޝå¼ è¡¨åQŒé…¾|®åº”该存储到那个库里</span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span> <div id="wmqeeuq" class="dp-highlighter" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; background-color: transparent; width: 766px; overflow-x: auto; overflow-y: auto; margin-left: 9px; padding-top: 1px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; line-height: 18px; "> <div id="wmqeeuq" class="bar"> <div id="wmqeeuq" class="tools" style="padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; text-align: left; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; font-weight: bold; ">Xml代码 <embed src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=%09%3Ca-business%20dbgroup%3D%22default%22%20name%3D%22filterWord%22%20class%3D%22com.guzzservices.business.FilterWord%22%20%2F%3E%0A%09%3Ca-business%20dbgroup%3D%22mysql%22%20name%3D%22filterWordGroup%22%20class%3D%22com.guzzservices.business.FilterWordGroup%22%20%2F%3E%0A%09%3Ca-business%20dbgroup%3D%22oracle%22%20name%3D%22configuration%22%20class%3D%22com.guzzservices.business.Configuration%22%20%2F%3E%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></div> </div> <ol start="1" class="dp-xml" style="font-size: 1em; line-height: 1.4em; margin-top: 0px; margin-right: 0px; margin-bottom: 1px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d1d7dc; border-right-color: #d1d7dc; border-bottom-color: #d1d7dc; border-left-color: #d1d7dc; list-style-type: decimal; list-style-position: initial; list-style-image: initial; background-color: #ffffff; color: #2b91af; "> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">a-business</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">dbgroup</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"default"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"filterWord"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">class</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"com.guzzservices.business.FilterWord"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">a-business</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">dbgroup</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"mysql"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"filterWordGroup"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">class</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"com.guzzservices.business.FilterWordGroup"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; "><</span><span id="wmqeeuq" class="tag-name" style="color: #006699; font-weight: bold; ">a-business</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">dbgroup</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"oracle"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">name</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"configuration"</span><span style="color: black; "> </span><span id="wmqeeuq" class="attribute" style="color: red; ">class</span><span style="color: black; ">=</span><span id="wmqeeuq" class="attribute-value" style="color: blue; ">"com.guzzservices.business.Configuration"</span><span style="color: black; "> </span><span id="wmqeeuq" class="tag" style="color: #006699; font-weight: bold; ">/></span><span style="color: black; ">  </span></span></li> </ol> </div> <span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">½Ž€å•的配置åQŒå°†ä¸‰ä¸ªå¯¹è±¡åˆ†åˆ«å­˜å‚¨åˆ?åîC¸åŒçš„æ•°æ®åº“中åQŒå®Œæˆåž‚直分切ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; ">guzzæ°´åã^切表</strong></span></span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">æ°´åã^切表是指ž®†ä¸€å¼ å¤§è¡¨ï¼Œåˆ†åˆ‡æˆè®¸å¤šå°è¡¨ã€‚guzz的设计是当需要水òq›_ˆ†è¡¨æ—¶åQŒåŽŸå…ˆä»£ç ä¸å˜ï¼Œä¸ºæ¯ä¸ªéœ€è¦åˆ†åˆ‡çš„è¡¨ç¼–å†™ä¸€ä¸ªåˆ†è¡¨ç­–ç•¥ç±»åQŒé…¾|®åˆ°¾pȝ»Ÿä¸­ã€‚然后在调用前,声明分表½{–略卛_¯ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">  整个˜q‡ç¨‹åªéœ€è¦æ–°å†™ä¸€ä¸ªç±»åQŒåœ¨è°ƒç”¨å‡ºå¢žåŠ ä¸€è¡Œä»£ç å³å¯ï¼Œå¯¹åŽŸå§‹ç³»¾lŸå…¥ä¾µéžå¸¸å°åQŒé£Žé™©å¯æŽ§ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">  ‹¹ç¨‹æ€ÀL¯”hibernate shard要清晰很多,具体可以çœ?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><a target="_blank" style="color: #006699; text-decoration: underline; ">http://code.google.com/p/guzz/wiki/TutorialShadowTable?wl=zh-Hans</a></span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; ">数据库主从分¼›?/strong></span></span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">从垂直分切部分可以看刎ͼŒguzz也是配置性的原生支持è¯Õd†™åˆ†ç¦»ã€‚如果需要增加从数据库,可以随时加上åQŒä¸éœ€è¦æ”¹ä»ÖM½•代码。不需要改动代码,而且配置也不复杂åQŒåº”该算是设计上的极限了吧?</span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">你只需要在dbgroup中增加一个属æ€?#8220;slaveDBConfigName”åQŒç„¶åŽåœ¨ä¸€ä¸ªpropertiesæ–‡äšg中加上所有你需要的从数据库˜qžæŽ¥æ± é…¾|®å³å¯ï¼Œä»Žæ•°æ®åº“可以有许多台ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">˜q™ä¸ªhibernate shardæ ÒŽœ¬ž®±æ²¡æœ‰æ¶‰åŠåˆ°ã€‚而且guzz允许½E‹åºæŽ§åˆ¶è¯Õd†™åº“选取åQŒå’Œproxy模式的中间äšg路由各有优势åQŒæ¯•竟更加容易控制。如果你做过内容提前审核再允许发布的¾pȝ»ŸåQŒå°±ä¼šæ˜Žç™½proxy中间件解决不了全部问题,有些è¯ÀL“ä½œä¸å…è®¸å»¶è¿ŸåQŒåªèƒ½è¯»ä¸Õdº“åQŒè€Œæ˜¯ä¹Ÿæ˜¯è¯ÖMº‹åŠ¡ï¼Œproxy中间件会很尴ž®¬ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><strong style="font-weight: bold; "><span style="font-size: medium; ">异构数据åº?/span></strong></span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">˜q™ä¸ªhibernate以及ibatis之类的更没有了。而且也是对应用透明的,你可以随旉™€‰æ‹©å¢žåР䏀¿Uæ•°æ®åº“åQŒç„¶åŽæŠŠæŸäº›è¡¨æ”¾åˆîC¸Šé¢ï¼Œå¦‚增加一个H2做应用端¾~“存数据库,自己完成¾cÖM¼¼Timesten + oracle的架构ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">配置方式在上面的垂直分切ž®èŠ‚ä¹Ÿå¯ä»¥çœ‹åˆ°ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; ">数据库连接池配置</strong></span></span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">随着表垂直和水åã^切分的进行,数据库会­‘Šæ¥­‘Šå¤šåQŒæ•°æ®æºé…ç½®ä¹Ÿä¼š­‘Šæ¥­‘Šå¤šã€‚guzz的设计是配置分组½Ž¡ç†åQŒç±»ä¼¼Mysql的配¾|®æ–‡ä»¶ã€‚每个数据源配置都在一个组内,无论增加多少都清æ™îCº†ç„Óž¼Œä¸ä¼šåå­—ç›æ€º’冲突ã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">½CÞZ¾‹åQ?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span> <div id="wmqeeuq" class="dp-highlighter" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; background-color: transparent; width: 766px; overflow-x: auto; overflow-y: auto; margin-left: 9px; padding-top: 1px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; line-height: 18px; "> <div id="wmqeeuq" class="bar"> <div id="wmqeeuq" class="tools" style="padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; text-align: left; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; font-weight: bold; ">Properties代码 <embed src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=%5BmasterDB%5D%0Aguzz.identifer%3DblogMasterDB%0Aguzz.IP%3Dlocalhost%0Aguzz.maxLoad%3D120%0AdriverClass%3Dcom.mysql.jdbc.Driver%0AjdbcUrl%3Djdbc%3Amysql%3A%2F%2Flocalhost%3A3306%2Fblog%3FuseUnicode%3Dtrue%26amp%3BcharacterEncoding%3DUTF-8%26amp%3BuseServerPrepStmts%3Dtrue%0Auser%3Droot%0Apassword%3Droot%0AacquireIncrement%3D10%0AidleConnectionTestPeriod%3D60%0A%0A%5BupdateMasterDB%5D%0Aguzz.identifer%3DincUpdateDB1%0Aguzz.IP%3Dlocalhost%0Aguzz.maxLoad%3D20%0AdriverClass%3Dcom.mysql.jdbc.Driver%0AjdbcUrl%3Djdbc%3Amysql%3A%2F%2Flocalhost%3A3306%2FguzzSlowUpdate%3FuseUnicode%3Dtrue%26amp%3BcharacterEncoding%3DUTF-8%0Auser%3Dslowupdate%0Apassword%3Dslowupdate%0AacquireIncrement%3D10%0AidleConnectionTestPeriod%3D60%0A%0A%5BlogMasterDB%5D%0A....%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></div> </div> <ol start="1" class="dp-default" style="font-size: 1em; line-height: 1.4em; margin-top: 0px; margin-right: 0px; margin-bottom: 1px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d1d7dc; border-right-color: #d1d7dc; border-bottom-color: #d1d7dc; border-left-color: #d1d7dc; list-style-type: decimal; list-style-position: initial; list-style-image: initial; background-color: #ffffff; color: #2b91af; "> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span style="color: black; ">[masterDB]  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">guzz.identifer=blogMasterDB  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">guzz.IP=localhost  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">guzz.maxLoad=<span id="wmqeeuq" class="number" style="color: #c00000; ">120</span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">driverClass=com.mysql.jdbc.Driver  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">jdbcUrl=jdbc:mysql://localhost:<span id="wmqeeuq" class="number" style="color: #c00000; ">3306</span><span style="color: black; ">/blog?useUnicode=true&amp;characterEncoding=UTF-</span><span id="wmqeeuq" class="number" style="color: #c00000; ">8</span><span style="color: black; ">&amp;useServerPrepStmts=true  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">user=root  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">password=root  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">acquireIncrement=<span id="wmqeeuq" class="number" style="color: #c00000; ">10</span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">idleConnectionTestPeriod=<span id="wmqeeuq" class="number" style="color: #c00000; ">60</span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">[updateMasterDB]  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">guzz.identifer=incUpdateDB1  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">guzz.IP=localhost  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">guzz.maxLoad=<span id="wmqeeuq" class="number" style="color: #c00000; ">20</span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">driverClass=com.mysql.jdbc.Driver  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">jdbcUrl=jdbc:mysql://localhost:<span id="wmqeeuq" class="number" style="color: #c00000; ">3306</span><span style="color: black; ">/guzzSlowUpdate?useUnicode=true&amp;characterEncoding=UTF-</span><span id="wmqeeuq" class="number" style="color: #c00000; ">8</span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">user=slowupdate  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">password=slowupdate  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">acquireIncrement=<span id="wmqeeuq" class="number" style="color: #c00000; ">10</span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">idleConnectionTestPeriod=<span id="wmqeeuq" class="number" style="color: #c00000; ">60</span><span style="color: black; ">  </span></span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">[logMasterDB]  </span></li> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; ">....  </span></li> </ol> </div> <span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">如果一些数据库å¯ÒŽŸäº›è¿žæŽ¥æ± æ”¯æŒæ›´å¥½åQŒguzz设计上还允许ä¸ÞZ¸åŒçš„æ•°æ®æºæŒ‡å®šä¸åŒçš„˜qžæŽ¥æ± å®žçްã€?/span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">如果您需要分表,˜q˜æ˜¯æ”‘Ö¼ƒhibernate shard或ibatis的设计模式吧åQŒå“ªäº›åªæ˜¯äÍ时拼凑出来的东西åQŒè®¾è®¡ä¸Šæ ÒŽœ¬ž®×ƒ¸æ€Žä¹ˆæ øP¼</span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "> </span> <img src ="http://www.aygfsteel.com/darkbluefeeling/aggbug/335488.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/darkbluefeeling/" target="_blank">æ·Þp“è‰²å¿ƒæƒ?/a> 2010-10-18 21:02 <a href="http://www.aygfsteel.com/darkbluefeeling/archive/2010/10/18/335488.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>3行代码,实现IP到地理位¾|®çš„反查功能http://www.aygfsteel.com/darkbluefeeling/archive/2010/06/22/324143.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Tue, 22 Jun 2010 03:59:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2010/06/22/324143.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/324143.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/06/22/324143.html#Feedback9http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/324143.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/324143.html阅读全文

]]>
改进架构åQŒå®žçŽ°åŠ¨æ€æ•°æ®æºåQŒé™ä½Žjava¾l´æŠ¤http://www.aygfsteel.com/darkbluefeeling/archive/2010/05/27/322032.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Thu, 27 May 2010 06:52:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/27/322032.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/322032.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/27/322032.html#Feedback5http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/322032.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/322032.html如何不用写java代码来完成开发? 

对于大部分的产品和项目来è¯ß_¼Œ™åµé¢å˜åŒ–是非常头痛的事情。每‹Æ¡å°åŠŸèƒ½ä¸Šçº¿åQŒæ–°å®¢æˆ·åˆ°æ¥åQŒéƒ½éœ€è¦è¿›è¡Œå®šåˆ¶æ”¹é€ ï¼Œä¸æ–­çš„开发维护。每‹Æ¡å¼€å‘一斚w¢è¦æ”¹åŠ¨é¡µé¢ï¼Œä¸€æ–šw¢è¦æ”¹åŠ¨æœåŠ¡å™¨ä»£ç åQŒç„¶åŽéƒ¨¾|ŒÓ€‚而借助动态数据源åQŒå¯ä»¥ä¸ç”¨å¼€å‘后端应用,直接完成功能开发ã€?/span> 

新功能开发时åQŒåªéœ€è¦å®šä¹‰éœ€è¦çš„æ•°æ®æ ¼å¼å’ŒèŽ·å–æ–¹æ³•ï¼Œå¦‚é€šè¿‡xml上传1个sql语句åQŒç³»¾lŸæ ¹æ®sql语句自动提取数据òq¶è{成通用的格式。开发过½E‹ä¸­åQŒåŽå°java开发部分只是写好sqlòq¶ä¸”上传åQŒè¿™æ ·å‰å°é€šè¿‡æŸä¸€ä¸ªservlet可以动态的è¯Õd–执行sqlåQŒåƈž®†ç»“果按照json˜q”给前端åQŒä»¥åŽæ‰€æœ‰çš„开发只需要前端做ajax实现™åµé¢å›_¯ã€?/span> 

完整业务‹¹ç¨‹å¦‚下åQ?/strong> 

1. 用户在前端操作,如需要读取经‹¹Žç±»å›¾ä¹¦ã€?/span> 

2. 前端js判断是什么操作,然后发送ajaxè¯äh±‚刎ͼšhttp://services.guzz.org/commonServlet?id=f2354239sfASASFASfasf6&catId=47&keyword=jingji..... 

3. 服务器端有一个类似dispatcher-servlet的东西(我们˜q™å„¿çš„commonServletåQ‰ï¼Œæ‹¦æˆªè¯äh±‚åQŒæ ¹æ®id知道加蝲数据需要执行名¿UîCØ“f2354239sfASASFASfasf6çš„sqlæ–‡äšgåQŒæ‰§è¡Œæ—¶éœ€è¦å‚敎ͼšcatId=47å’Œkeyword=jingji 

4. commonServlet从文件系¾lŸä¸­è¯Õd–f2354239sfASASFASfasf6.xmlæ–‡äšgåQˆè¿™ä¸ªæ–‡ä»¶åœ¨ä¸€ä¸ªéšè—çš„目录下,从浏览器是不能直接获取到的;集群环境会存攑֜¨é›†ä¸­å­˜å‚¨ä¸Šï¼‰åQŒè§£æžsql以及对象映射ORMã€?/span> 

5. commonServlet打开数据库连接,æ ÒŽ®sql构造查询语句,ž®†ç¬¬ä¸€æ­¥ä¼ å…¥çš„å‚æ•°å…¨éƒ¨ä½œäØ“å‘½åå‚æ•°ä¼ ç»™æŸ¥è¯¢è¯­å¥åQŒæ‰§è¡ŒæŸ¥è¯¢ã€?/span> 

6. commonServlet把查询的ResultSetæ ÒŽ®ORM转成java¾c»ï¼Œå†è{成jsonåQŒè¿”回前台ã€?/span> 

7. 前台æ ÒŽ®json构造出™åµé¢òq¶å±•½Cºã€‚结束流½E‹ã€?/span> 

在整个过½E‹ä¸­åQŒæœ‰2个关键步骤,一是动态加载SQLòq¶è¿›è¡ŒORM映射åQŒä¸€æ˜¯è‡ªåŠ¨è¿›è¡Œsql所需要参数的¾cÕdž‹è½¬æ¢å’ŒåŒ¹é…ï¼Œ˜q›è¡Œå‘½åæŸ¥è¯¢ã€‚如果系¾lŸè§„模较大,˜q˜éœ€è¦è§£å†ÏxŸ¥è¯¢æ—¶åˆ†åº“分表的问题。对于这¿Usql使用方式åQŒç”±äºŽåœ¨¾pȝ»Ÿä¸Šçº¿æ—Óž¼Œòq¶ä¸çŸ¥é“以后会用哪些sql语句åQŒæˆ‘们称作动态SQLã€?/span> 

实现方式åQ?/strong> 

步骤1. 实现servlet。定义一个普通的servletåQŒæˆ–者jspåQŒæˆ–者webwork/spring actionåQŒæŽ¥æ”¶å‚敎ͼŒèŽ·å–åˆ°sqlçš„idåQŒä»¥åŠæ‰€æœ‰ä¼ å…¥çš„参数åQŒç„¶åŽè{入处理类处理。处理完成后åQŒå°†˜q”回¾l“果转成json˜q”回前端ã€?/span> 

步骤2. 实现动态SQL加蝲与查询。处理类æ ÒŽ®id加蝲sqlòq¶æ‰§è¡Œï¼Œ˜q”回数据库查询结果。guzz 1.2.8 beta2提供了动态SQL服务åQŒæ ¹æ®æ­¤æœåŠ¡å¯ä»¥ç›´æŽ¥å®žçŽ°æ­¤åŠŸèƒ½ã€‚è¯¦¾l†è¯´æ˜Žï¼šhttp://code.google.com/p/guzz/wiki/TutorialDynamicSQLService 

好处åQ?/strong> 

实现以后åQŒåŸºæœ¬ä¸ŠåŽå°å¼€å‘就会很½E›_®šå¾ˆç¨³å®šäº†åQŒå¤§éƒ¨åˆ†çš„工作只是前端做™åµé¢ã€‚可以大òq…度的降低开发成本,提高开发进度ã€?/span> 

上面的实现是以上传文件来定义和管理sqlåQŒä¹Ÿå¯ä»¥é€šè¿‡æ•°æ®åº“来½Ž¡ç†ã€‚è¿™æ ïL®¡ç†è“v来更加简单ã€?/span> 

如果使用guzzä½œäØ“åŠ¨æ€SQL提供者,可以自动获得命名查询åQŒç±»åž‹è‡ªåŠ¨åŒ¹é…ï¼ˆè½¬æˆæžšä‹D¾cÕdž‹éƒ½å¯ä»¥ï¼‰åQŒåˆ†åº“,自动分切表,自定义属性表½{‰é™„加支持ã€?/span>

啧啧~~ 



]]>
guzz1.2.8 beta2发布--支持动态加载在¾U¿è°ƒè¯•SQLhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/26/321888.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Wed, 26 May 2010 02:13:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/26/321888.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/321888.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/26/321888.html#Feedback2http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/321888.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/321888.html guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架åQŒäØ“¾pȝ»Ÿåœ¨æ•°æ®å±‚的设计提供一站式解决æ–ÒŽ¡ˆã€‚guzz可以看作æ˜?ibatis/hibernate的一大的延äŽ×åQŒåƈ可以取代˜q?个东è¥Ñ€?/span> 

guzz主要功能与特点: 
  • çŽîC»£å¤§è§„模系¾lŸè®¾è®¡ï¼ŒæŠ€æœ¯ä¸Šå¸æ”¶äº†ibatis/hibernate的优ç‚?/li>
  • 支持像hibernate一æ ïLš„对象化持久、映ž®„和方便的增删改æŸ?/li>
  • 支持像ibatisä¸€æ øP¼Œè®©dba参与sql设计的复杂数据库操作和优åŒ?/li>
  • 支持在线加蝲与调试SQL。按照应用策略,从文ä»?数据åº?Web Service½{‰é€”径åQŒåŠ¨æ€æå–ä¸Žä½¿ç”¨SQL语句åQˆDynamic SQLåQ?/li>
  • 支持应用½E‹åºä½¿ç”¨å¤§é‡çš„æ•°æ®åº“和主从读写分¼›?/li>
  • 支持­‘…越范式的特ŒDŠå…³è”、非¾l“构化数据等异构资源的统一½Ž¡ç†
  • 支持数据表在多组机器间水òq›_ˆ†å¸ƒï¼ˆShardåQ‰ï¼Œòq¶è‡ªåŠ¨ç»´æŠ¤å¤š¾l„机器之间的分布式事åŠ?/li>
  • 支持1张表按照业务规则分切成多张小表(ShadowåQ‰ï¼Œòq¶æ”¯æŒæ¯å¼ å°è¡¨æ‹¥æœ‰è‡ªå·Þq‰¹ŒDŠçš„属性字ŒDµï¼ˆCustomåQ?/li>
  • 支持¾l„äšg化服务(SOAåQ‰ï¼Œæž„徏企业/™å¹ç›®å®žæ–½åŸºç¡€òq›_°
  • 提供面向对象的数据库è¯Õd–标签(JSP Taglib)åQŒåŠ å¿«é¡µé¢å±•½Cºå±‚的快速变更、开发与部çÖv
  • 支持配置½Ž¡ç†æœåŠ¡å™¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸€å¥—èÊYä»¶ç³»¾lŸå¯¹æ‰€æœ‰åº”用程序的配置˜q›è¡Œ¾lŸä¸€½Ž¡ç†
™å¹ç›®åœ°å€åQ?/strong>http://code.google.com/p/guzz/ 
文档åQ?/strong>http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6 

1.2.8 beta2更新介绍åQ?/strong> 

支持动态管理SQLåQ?nbsp;

动态SQLåQˆDynamic SQLåQ‰ä¸æ˜¯æŒ‡åº”用½E‹åºåŠ¨æ€çš„æ‹¼æŽ¥SQL语句åQŒåŠ¨æ€SQL是指应用½E‹åºå¯ä»¥åŠ¨æ€çš„èŽ·å–é…ç½®å¥½çš„SQL语句。在获取的过½E‹ä¸­åQŒSQL语句如何½Ž¡ç†åQŒç”±åº”用¾pȝ»Ÿè‡ªèín军_®šã€?/span> 

换句话说åQŒåœ¨ibatis中,SQL语句配置到ibatis.xmlæ–‡äšg中,在guzz中,配置到guzz.xml中。但当配¾|®å®ŒæˆåŽåQŒåœ¨¾pȝ»Ÿ˜qè¡ŒæœŸé—´˜q™äº›SQL都是不能变动的,如果需要添åŠ?个或者修改优åŒ?个SQL语句åQŒå¿…™å»é‡å¯åº”用才能生效。而动态SQL允许应用¾pȝ»ŸåŠ¨æ€çš„½Ž¡ç†åQˆæ·»åŠ?修改/优化/删除åQ‰sql语句以及查询¾l“果到对象的映射关系åQˆORMåQ‰ï¼Œå¯¹äºŽSQL的变更不再需要重启应用系¾lŸï¼Œä»¥ç®€åŒ–维护与应对需求变化ã€?/span> 

动态SQL主要有两¿Uåº”用场景:SQL优化和动态数据源。具体介¾lè¯·å‚看åQ?/span>http://code.google.com/p/guzz/wiki/TutorialDynamicSQLService 

改进˜qœç¨‹æœåŠ¡è®¾è®¡åQ?/strong> 

增加对hessian, burlap协议的支持。目前guzz内置支持phprpc, hessian, burlap三种协议˜q›è¡ŒRPC˜qœç¨‹è°ƒç”¨ã€‚ä‹É用时åQŒä¸‰¿Uåè®®å¯ä»¥é€æ˜Žæ›¿æ¢åQŒç±»ä¼¼spring对RMI¾cÕdè®®çš„ž®è£…。具体介¾lè¯·å‚看åQ?/span>http://code.google.com/p/guzz/wiki/TutorialFutureService 

增加枚ä‹D¾cÕdž‹ä¸Žç±»åž‹å‚数化支持åQ?/strong> 

按照TopLink的模式,支持JDK5 enum。Enum在ä‹Éç”¨æ—¶å’Œæ™®é€šç±»åž‹ä¸€æ øP¼Œä¸éœ€è¦å®žçŽ°ç‰¹ŒDŠçš„æŽ¥å£åQˆhibernate要求实现接口åQ‰ã€‚Enum支持通过JPAçš„Enumeration注释声明åQŒä¹Ÿæ”¯æŒåœ¨hbm.xml中通过xml定义。通过xml的定义方式参看:http://code.google.com/p/guzz/wiki/TutorialHbmXml 

¾cÕdž‹å‚æ•°åŒ–äØ“guzz的特ŒDŠåŠŸèƒ½ï¼Œç”¨äºŽå¤„ç†åŠ¨æ€SQL参数和Jsp Taglib条äšg参数æ—Óž¼Œž®†String¾cÕdž‹è‡ªåŠ¨è½¬æ¢æˆéœ€è¦çš„æ•°æ®¾cÕdž‹ã€‚参数化¾cÕdž‹ä¸»è¦ä¸ºæ—¥æœŸå’Œæžšä‹D。详¾l†ä»‹¾lï¼šhttp://code.google.com/p/guzz/wiki/TutorialHbmXml 

增加å¯ÒŽ•°æ®åº“保留字的支持åQ?/strong> 

在定义数据库列名æ—Óž¼Œå¯ä»¥ç”¨`åQˆESC下面的键åQ‰å°†åˆ—名引è“v来,避免字段名称与数据库保留字冲½Hã€‚此功能与hibernate提供的处理保留字æ–ÒŽ³•相同åQŒä½†guzz只支持字ŒDµï¼Œä¸æ”¯æŒ`表名`ã€?/span> 

增加对Microsoft SQL Server的支æŒ?未测è¯?åQ?/strong> 

参考hibernate实现了一个SQL Server 2000 & 2005çš„dialectåQŒä¸æ”¯æŒåˆ†é¡µã€‚没有测试过。Dialect实现¾c»ï¼šorg.guzz.dialect.MSSQLDialect 

Guzz已经能够支持的数据库和数据类型请参看åQ?/span> 
http://code.google.com/p/guzz/wiki/TutorialGuzzXml 

应用½CÞZ¾‹è¯´æ˜ŽåQ?/strong> 

http://code.google.com/p/guzz/wiki/TutorialDynamicSQLService 

下一版本计划åQ?/strong> 

  • 修复发现的bugã€?/li>
  • 设计一些常见的服务åQŒæŽ¨òq¿guzz基础服务理念ã€?/li>


]]>
guzz1.2.8 beta1发布--支持annotationhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/05/320099.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Wed, 05 May 2010 02:36:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/05/320099.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/320099.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/05/05/320099.html#Feedback0http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/320099.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/320099.html阅读全文

]]>
guzz1.2.7正式版发布,支持表分切和动态表字段http://www.aygfsteel.com/darkbluefeeling/archive/2010/04/09/317850.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Fri, 09 Apr 2010 06:55:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2010/04/09/317850.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/317850.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2010/04/09/317850.html#Feedback1http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/317850.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/317850.htmlguzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架åQŒäØ“¾pȝ»Ÿåœ¨æ•°æ®å±‚的设计提供一站式解决æ–ÒŽ¡ˆã€‚guzz可以看作æ˜?ibatis/hibernate的一大的延äŽ×åQŒåƈ可以取代˜q?个东è¥Ñ€?nbsp;

guzz主要功能与特点: 
  • çŽîC»£å¤§è§„模系¾lŸè®¾è®¡ï¼ŒæŠ€æœ¯ä¸Šå¸æ”¶äº†ibatis/hibernate的优ç‚?/li>
  • 支持像hibernate一æ ïLš„对象化持久、映ž®„和方便的增删改æŸ?/li>
  • 支持像ibatisä¸€æ øP¼Œè®©dba参与sql设计的复杂数据库操作和优åŒ?/li>
  • 支持应用½E‹åºä½¿ç”¨å¤§é‡çš„æ•°æ®åº“和主从读写分¼›?/li>
  • 支持­‘…越范式的特ŒDŠå…³è”、非¾l“构化数据等异构资源的统一½Ž¡ç†
  • 支持数据表在多组机器间水òq›_ˆ†å¸ƒï¼ˆShardåQ‰ï¼Œòq¶è‡ªåŠ¨ç»´æŠ¤å¤š¾l„机器之间的分布式事åŠ?/li>
  • 支持1张表按照业务规则分切成多张小表(ShadowåQ‰ï¼Œòq¶æ”¯æŒæ¯å¼ å°è¡¨æ‹¥æœ‰è‡ªå·Þq‰¹ŒDŠçš„属性字ŒDµï¼ˆCustomåQ?/li>
  • 支持¾l„äšg化服务(SOAåQ‰ï¼Œæž„徏企业/™å¹ç›®å®žæ–½åŸºç¡€òq›_°
  • 提供面向对象的数据库è¯Õd–标签(JSP Taglib)åQŒåŠ å¿«é¡µé¢å±•½Cºå±‚的快速变更、开发与部çÖv
  • 支持配置½Ž¡ç†æœåŠ¡å™¨ï¼Œå¯ä»¥ä½¿ç”¨ä¸€å¥—èÊYä»¶ç³»¾lŸå¯¹æ‰€æœ‰åº”用程序的配置˜q›è¡Œ¾lŸä¸€½Ž¡ç†
™å¹ç›®åœ°å€åQ?/strong>http://code.google.com/p/guzz/ 
文档åQ?/strong>http://www.guzz.org/wiki/GuzzGuide 

1.2.7正式ç‰?更新介绍åQ?/strong> 

  • 支持表分åˆ?/strong>。允许同一对象按照业务规则åQŒåˆ†åˆ«å­˜å‚¨åœ¨ä¸åŒçš„表中。如新闻评论åQšæ–°é—»é¢‘é“çš„è¯„è®ºå­˜æ”¾åœ?tb_c1åQŒå¨±ä¹ï¼štb_c2åQŒä½“育tb_c3åQŒå…¶ä»–:tb_c4åQŒæ»¡­‘›_Œ¾cÕdœ¨¾U¿æ•°æ®çš„æ•°æ®è¡¨åã^行扩展需要。表分切命名为:Shadow Tableã€?/li>
  • 支持自定义属性表。允许分切后的每张小表拥有自å·Þqš„动态对象属性和字段。如购物¾|‘站中:商品对象拥有¾lŸä¸€çš„名¿U°ã€ä­hæ ¹{€ç¼–受÷€è¯„分等åQŒä½†ä¸åŒçš„商品可能有自己ç‰ÒŽ®Šçš„属性,如图书拥有ISBN和出版社作者,服装拥有ž®ºç ã€é¢œè‰ŒÓ€æ¬¾å¼ç­‰½{‰ã€‚自定义属性允许程序只定义1个商品域对象åQŒç„¶åŽé€šè¿‡è‡ªå®šä¹‰å±žæ€§å’Œåˆ‡è¡¨åQŒå°†æ¯?¿Uç‰¹å®šçš„商品分切åˆ?张自å·Þq‰¹ŒDŠçš„表中åQŒè¿™å¼ è¡¨åŒæ—¶æ‹¥æœ‰å•†å“é€šç”¨çš„å­—ŒDµä»¥åŠè¿™¿Uå•†å“è‡ªå·Þqš„字段åQŒæŸ¥è¯¢æ—¶å¯ä»¥æŒ‰ç…§ç‰ÒŽ®Šå­—段直接在数据库中进行关¾pÀLŸ¥è¯¢ã€‚在guzz中,自定义属性的定义允许存储到数据库中,像普通对象一样动态生成和½Ž¡ç†åQŒä¸ç”¨é…¾|®å¤æ‚çš„xmlã€‚è‡ªå®šä¹‰å±žæ€§å‘½åäØ“åQšCustom Tableã€?/li>
  • 增加òq¶è¡Œä»ÕdŠ¡æ”¯æŒã€‚ç”¨äºŽå¤šä¸ªè¿œ½E‹æœåŠ¡åŒæ­¥çš„è°ƒç”¨åQŒé™ä½Žç­‰å¾…æ—¶é—´ã€?/li>
  • 增加hiloå’Œseqhiloä¸Õd¥ç”Ÿæˆ½{–略。至此,hibernate支持的常见主健生成策略,guzz都支持了ã€?/li>
  • 增加外挂环境接口。如果在spring中启动,允许在guzz中获取spring定义的beanã€?/li>
应用½CÞZ¾‹è¯´æ˜ŽåQ?/strong> 

本次更新有很多新概念需要介¾lï¼Œå› æ­¤½‹‡å¹…较长。详¾l†çš„½CÞZ¾‹å’Œè¯´æ˜Žè¯·å‚看åQ?nbsp;

表分切:http://www.guzz.org/wiki/GuzzShadow 

自定义属性表åQˆåŸºäºŽè¡¨åˆ†åˆ‡åQ‰ï¼š[url]http://www.guzz.org/wiki/GuzzCustomTable [/url] 

òq¶è¡Œä»ÕdŠ¡æ‰§è¡ŒåQˆåŸºäºŽæœåŠ¡ï¼‰åQ?a target="_blank" style="color: #006699; text-decoration: underline; ">http://www.guzz.org/wiki/GuzzFutureService 

ä¸Õd¥ç”Ÿæˆ½{–ç•¥åQ?a target="_blank" style="color: #006699; text-decoration: underline; ">http://www.guzz.org/wiki/GuzzHbm 

下一版本计划åQ?/strong> 

  • 数据库自动分库支æŒ?/strong>。允许同一张表åQŒåˆ†æ•£åœ¨å¤šå°æ•°æ®åº“中ã€?/li>
  • 提供更多å¯ÒŽœåŠ¡çš„æ”¯æŒã€?/li>
  • 探烦SASSåQˆèÊY件就是服务)的数据层模型ã€?/li>
  • å…¶ä»–ã€?/li>


]]>
guzz使用效果和经验技巧分äº?/title><link>http://www.aygfsteel.com/darkbluefeeling/archive/2010/04/09/317849.html</link><dc:creator>æ·Þp“è‰²å¿ƒæƒ?/dc:creator><author>æ·Þp“è‰²å¿ƒæƒ?/author><pubDate>Fri, 09 Apr 2010 06:52:00 GMT</pubDate><guid>http://www.aygfsteel.com/darkbluefeeling/archive/2010/04/09/317849.html</guid><wfw:comment>http://www.aygfsteel.com/darkbluefeeling/comments/317849.html</wfw:comment><comments>http://www.aygfsteel.com/darkbluefeeling/archive/2010/04/09/317849.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/317849.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/darkbluefeeling/services/trackbacks/317849.html</trackback:ping><description><![CDATA[<span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">我们主要是web应用åQŒweb规模也不能确定,有可能一天几千万甚至上亿的PVåQŒä¹Ÿæœ‰å¯èƒ½æ ¹æœ¬æ²¡äººç”¨ã€‚最初设计guzz的目的就是让大型¾|‘站和小型网站一栯‚®¾è®¡ç¼–å†™ï¼Œå› äØ“è°ä¹Ÿä¸çŸ¥é“è¿™ä¸ªåº”ç”¨ä¸ŠåŽÖM»¥åŽæœ‰å¤šå°‘人用åQŒåŒæ—¶è§£å†³ç³»¾lŸè¢«è¦æ±‚™åµé¢å¤©å¤©æ”ÒŽ¥è¯¥åŽ»çš„é—®é¢˜ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><strong style="font-weight: bold; ">使用guzz以来的效果:</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">1. 框架性能上没有看得出的快慢区别。我觉得不会比hibernateå’Œbiatis慢,我看˜q‡ä»–们的一些代码,‹¹ç¨‹æŒºå¤æ‚的。guzz很简单,整个持久化过½E‹éœ€è¦è{手的¾c»è‡³ž®‘要比这两个ž®‘很多ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">2. 以前我们用hibernate较多åQŒä¸€èˆ¬æ•°æ®åº“设计ž®±æ˜¯ä¸€ä¸ªåº“åQŒè¯»å†™å…¨éƒ¨åšã€‚现在在设计时大家脑子里面直接就是分å‡?个数据库åQˆå¯èƒ½éƒ¨¾|²åœ¨1台mysql上)--业务ä¸Õdº“åQŒäÍ时信息库åQŒæ—¥å¿—库åQŒç„¶åŽæŠŠè¡¨åˆ†åˆîC¸åŒçš„库中。然后数据库安装时直接主从安装,ä¸ÖM»Žä½¿ç”¨ã€‚虽然看èµäh¥åº“复杂了åQŒä½†½E‹åºä¸Šæ²¡æœ‰ä“Qä½•æˆæœ¬ä»£ä»øP¼ŒåŸºæœ¬ä¸Šå·²¾låŞ成一¿Uè®¾è®¡æµ½E‹ã€‚è¿™¿Uæ¨¡å¼æ„Ÿè§‰å¯ä»¥ä½œä¸ºæœ€ä½›_®žè·üc€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">3. ¾~–程上,一开始开发äh员还是徏个spring action¾c?+ 在daoå’Œmanager中增加需要的æ–ÒŽ³• + 修改dispatcher-servlet.xml配置映射 + jsp实现view。但现在很多功能都是直接jspåQŒç”¨taglib直接è¯Õdº“åQŒåŸºæœ¬ä¸ŠåŽå°çš„读数据库操作页面已¾lçœ‹ä¸åˆ°action的媄子了。java代码比先前的工程åQŒåŒæ ïLš„功能ž®‘了大概60%-70%ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">4. 我们的系¾lŸä¸€èˆ¬åŽå°åŠŸèƒ½æ¯”è¾ƒå¤æ‚ï¼Œä»¥å¾€¾~–辑要改点东西大安™ƒ½å¾ˆéƒé——÷€‚不˜q‡çŽ°åœ¨æŠµåˆ¶å°‘äº†å¾ˆå¤šï¼ŒåŸºæœ¬ä¸Šå°±æ˜¯æ”¹æ”¹jsp或者在复制1个新的jspæ”ÒŽ”¹åQŒç„¶åŽä¼ åˆ°æœåŠ¡å™¨ä¸Šï¼Œä¸€å¤§å †é›†ç¾¤æœºå™¨çš„é‡å¯å·¥ä½œéƒ½å…äº†åQŒæ— è®ºæ˜¯å¼€å‘还是部¾|²éƒ½å¾ˆçœäº‹ã€‚å’Œphp差不多ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><strong style="font-weight: bold; ">guzz1.2.7分表和自定义表的应用实例åQ?/strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">我们æœ?套调查系¾lŸï¼Œä½¿ç”¨äº†è¿™™åÒŽŠ€æœ¯ï¼Œä¹Ÿæ˜¯½W¬ä¸€ä¸ªçº¿ä¸Šæµ‹è¯•ã€‚æ¯ä¸ªè°ƒæŸ¥éƒ½ä¸å¤ªä¸€æ øP¼Œéœ€è¦ç½‘友填一些东西,需要填什么,填的个数¾cÕdž‹éƒ½ä¸å®šã€‚一个调查进行过½E‹ä¸­åQŒæˆ–者结束后要求å¯ÒŽ•°æ®è¿›è¡Œç»Ÿè®¡æŠ¥è¡¨ã€‚统计的内容可能也包括那些自定义的填½Iºé¢˜ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">åœ?.2.7之前åQŒæˆ‘们解å†Ïx–¹æ¡ˆæ˜¯åQšå°†æ‰€æœ‰è‡ªå®šä¹‰çš„调查项åQŒæŒ‰ç…§key-value生成一个xml字符ä¸ÔŒ¼Œå­˜å‚¨åˆ°æ•°æ®åº“大字ŒDµä¸­(Mysql text字段)。需要统计时åQŒæ ¹æ®mysql5.1对xml支持的新ç‰ÒŽ€§ä‹É用ExtraValue函数解析˜q™ä¸ªxml生成一个新表(create table xxxx select ExtraValue(xx) as a, .....from 主调查记录表åQ‰ï¼Œç„¶åŽåœ¨æ ¹æ®æ–°çš„xxxx表统计。每‹Æ¡éƒ½è¦æ‰‹å·¥æ¥å¼„,非常¾Jçã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">1.2.7åQŒä‹É用切表和自定义属性后åQŒçŽ°åœ¨çš„è§£å†³æ–ÒŽ¡ˆåQšæ¯‹Æ¡åˆ›å»ºæŠ•¼œ¨åƈ建立好自定义调查™å¹ï¼ˆè‡ªå®šä¹‰è°ƒæŸ¥é¡¹å­˜å‚¨åœ¨æ•°æ®åº“中)åQŒæ ¹æ®è¿™äº›è‡ªåŠ¨ç”Ÿæˆä¸€ä¸ªmysql create table的语句,创徏好需要的表。在配置CustomTableView动态的映射用户提交的数据存储到对应的表中。完全自动,后箋处理½Ž€åŒ–了很多ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">而且ç”׃ºŽæ•´ä¸ª˜q‡ç¨‹æ˜¯å®žæ—¶çš„åQŒä»¥å‰çš„˜q‡ç¨‹æ˜¯æ‰‹å·¥çš„åQŒæ‰€ä»¥å¾ˆå¤šçº¿ä¸Šçš„æŠ¥è¡¨åŠŸèƒ½ä¹Ÿå¯ä»¥å¼€å‘äº†ã€‚å¼€å‘ä¹Ÿéžå¸¸½Ž€å•,我们用guzz jsp tablib直接è¯Õdº“åQŒåƒæ“ä½œæ™®é€šjava属性一æ äh“ä½œè‡ªå®šä¹‰å±žæ€§ï¼Œä¸€ä¸ªç±»åž‹çš„表报1个jsp。特ŒDŠè°ƒæŸ¥çš„ç‰ÒŽ®ŠæŠ¥è¡¨ä¹Ÿå°±æ˜¯å¾€æœåŠ¡å™¨ä¸Šæ”?个特ŒDŠå¤„理的jspåQŒåº”用都不用重启åQŒéžå¸¸æ–¹ä¾Ñ€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><strong style="font-weight: bold; ">guzz1.2.7分表和自定义表的下一个应用计划:</strong></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">˜q™æ˜¯ä¸€ä¸ªè®¡åˆ’,˜q˜æ²¡æœ‰åšåQŒä¸˜q‡æˆ‘们准备很快就开始做ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">我们的所有系¾lŸå¯¹æ—¥å¿—都有要求åQŒæ—¥å¿—å¿…™å»è®°å½•!但日志的开发很烦ähåQŒå…¨æ˜¯æ²¡æœ‰æŠ€æœ¯å«é‡çš„重复工作。我们准备开发一个日志服务,所有系¾lŸä»¥åŽå°±ä¸ç”¨å¼€å‘日志了åQŒç›´æŽ¥ä‹É用这个服务。日志服务分为服务器端和客户端ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">服务器端åQ?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">一个标准的java web¾pȝ»ŸåQŒæœ‰æ—¥å¿—数据库,用来存储所有系¾lŸçš„æ—¥å¿—信息åQŒåƈ提供查询和统计等界面。如果有人需要查日志åQŒå°±åˆ°è¿™ä¸ªç³»¾lŸæ¥æŸ¥ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">服务器端æœ?个应用数据库åQŒç”¨æ¥åˆ›å»ºå’Œ½Ž¡ç†æŽˆæƒçš„应用系¾lŸã€?个新的应用上¾U¿çš„æ—¶å€™ï¼Œåœ¨è¿™é‡Œåˆ›å»ÞZ¸€ä¸ªåº”用和他的授权码,然后录入他的个性日志字ŒDµå’Œæ•°æ®¾cÕdž‹åQˆç±»ä¼ég¸Šé¢æåˆ°è°ƒæŸ¥çš„个性选项åQ‰ï¼ŒæœåŠ¡å™¨è‡ªåŠ¨åœ¨æ•°æ®åº“ä¸­¾l™ä»–创徏1个日志表åQŒç”¨æ¥å­˜å‚¨è¿™ä¸ªåº”用的日志数据。我们准备按季度分表åQŒè®©æ¯ä¸ªæ—¥å¿—è¡?个季度分æˆ?张子表ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">客户端:</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">实现一个标准的guzz serviceåQŒæä¾›æ—¥å¿—插入接å?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span> <div id="wmqeeuq" class="dp-highlighter" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; background-color: transparent; width: 694px; overflow-x: auto; overflow-y: auto; margin-left: 9px; padding-top: 1px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; line-height: 18px; "> <div id="wmqeeuq" class="bar"> <div id="wmqeeuq" class="tools" style="padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; text-align: left; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; font-weight: bold; ">Java代码 <embed src="http://guzz.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=public%20void%20log(UserLog%20log)%20%3B%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></div> </div> <ol start="1" class="dp-j" style="font-size: 1em; line-height: 1.4em; margin-top: 0px; margin-right: 0px; margin-bottom: 1px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d1d7dc; border-right-color: #d1d7dc; border-bottom-color: #d1d7dc; border-left-color: #d1d7dc; list-style-type: decimal; list-style-position: initial; list-style-image: initial; background-color: #ffffff; color: #2b91af; "> <li style="font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px; "><span style="color: black; "><span id="wmqeeuq" class="keyword" style="color: #7f0055; font-weight: bold; ">public</span><span style="color: black; "> </span><span id="wmqeeuq" class="keyword" style="color: #7f0055; font-weight: bold; ">void</span><span style="color: black; "> log(UserLog log) ;  </span></span></li> </ol> </div> <span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">每个¾pȝ»Ÿå¼€å‘æ—¶åQŒå°†æ—¥å¿—服务的jar包放到工½E‹ä¸­åQŒåƈ在guzz.xml中声明此服务åQŒä»£ç ç›´æŽ¥è°ƒç”¨å°±OK了ã€?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">˜q™æ ·ä»¥åŽž®×ƒ¸ç”¨äؓ每个¾pȝ»Ÿå¼€å‘æ—¥å¿—ç®¡ç†æ¨¡å—äº†ã€‚åÆˆä¸”è¿˜èƒ½èŽ·å–åˆ°¾lŸè®¡æŸä¸€ä¸ªç”¨æˆ·åœ¨æ‰€æœ‰ç³»¾lŸä¸­‹zÕdŠ¨è®°å½•çš„é¢å¤–å¢žå¼ºï¼ˆä¾‹å¦‚æˆ‘ä»¬å¯ä»¥åœ¨æœåŠ¡å™¨ç«¯å°†æ—¥å¿—è®°å½•ä¸¤ä†¾åQŒä¸€ä»½æŒ‰åº”用¾pȝ»ŸåQŒä¸€ä»½æŒ‰æ“åšè€…记录)~~</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span> <img src ="http://www.aygfsteel.com/darkbluefeeling/aggbug/317849.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/darkbluefeeling/" target="_blank">æ·Þp“è‰²å¿ƒæƒ?/a> 2010-04-09 14:52 <a href="http://www.aygfsteel.com/darkbluefeeling/archive/2010/04/09/317849.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate入门 - 基础配置http://www.aygfsteel.com/darkbluefeeling/archive/2005/12/02/22218.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Fri, 02 Dec 2005 03:48:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2005/12/02/22218.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/22218.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2005/12/02/22218.html#Feedback0http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/22218.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/22218.html
Hibernate配置文äšg可以有两¿Uæ ¼å¼ï¼Œä¸€¿Uæ˜¯ hibernate.properties åQŒå¦ä¸€¿Uæ˜¯ hibernate.cfg.xml 

后者稍微方便一些,当增加hbm映射文äšg的时候,可以直接åœ?nbsp;hibernate.cfg.xml é‡Œé¢å¢žåŠ åQŒä¸å¿…像 hibernate.properties å¿…须在初始化代码中加入ã€?

但不½Ž¡æ€Žä¹ˆè¯ß_¼Œä¸¤ç§çš„配¾|®é¡¹éƒ½æ˜¯ä¸€æ ïLš„åQŒä¸‹é¢è¯¦¾l†ä»‹¾lï¼š

在Hibernateçš„src目录下有一ä¸?nbsp;hibernate.properties æ¨¡æ¿åQŒæˆ‘们不必自å·×ƒ»Žå¤´å†™åQŒä¿®æ”ÒŽ¨¡æ¿å°±å¯ä»¥äº?)

hibernate.query.substitutions true 1, false 0, yes 'Y', no 'N' 


˜q™ä¸ªé…ç½®æ„æ€æ˜¯å½“你在Hibernate里面输入true的时候,Hibernate会è{åŒ–äØ“1插入数据库,当你在Hibernate里面输入false的时候,Hibernate会è{åŒ–äØ“0插入数据库,后面的YåQŒN同理ã€?

对于某些数据库,例如Oracle来说åQŒæ²¡æœ‰boolean数据¾cÕdž‹åQŒå°±æ˜¯é‡‡ç”?代表trueåQ?代表falseåQŒå› æ­¤ä‹É用这个配¾|®åœ¨Hibernate里面直接用true/false会非常直观ã€?

1hibernate.dialect net.sf.hibernate.dialect.MySQLDialect 
2hibernate.connection.driver_class com.mysql.jdbc.Driver 
3hibernate.connection.url jdbc:mysql:///test 
4hibernate.connection.username root 
5hibernate.connection.password  
6


˜q™æ˜¯ä¸€ä¸ªè¿žæŽ¥MySQL数据库的例子åQŒå¾ˆç›´è§‚åQŒä¸å¿…解释,不同的数据库的连接参数模板中全部¾l™å‡ºäº†ã€?


hibernate.connection.pool_size 1
hibernate.statement_cache.size 25

˜q™æ˜¯Hibernate自带的连接池的配¾|®å‚敎ͼŒåœ¨é»˜è®¤æƒ…况下ž®†é‡‡ç”¨ã€‚意义很直观åQŒä¸å¤šè§£é‡Šã€?

只是提醒一点,Hibernate˜q™ä¸ª˜qžæŽ¥æ± æ˜¯éžå¸¸åŽŸå§‹éžå¸¸½Ž€å•çš„˜qžæŽ¥æ± ï¼Œå¦‚果你在™å¹ç›®ä¸­ç”¨Hibernate的话åQŒå¾è®®ä½ é¦–选App Server的连接池åQŒæ¬¡é€‰Hibernate带的DBCP˜qžæŽ¥æ± ã€‚自带的˜qžæŽ¥æ± åº”该做为末选ã€?

如果你采用DBCP˜qžæŽ¥æ± ï¼Œé™¤äº†è¦é…¾|®DBCP˜qžæŽ¥æ± ä»¥å¤–,˜q˜éœ€è¦å–消掉下行的注释:

hibernate.connection.provider_class net.sf.hibernate.connection.DBCPConnectionProvider

其它的连接池同理�

如果采用App Server的连接池åQŒå‡è®¾App Server˜qžæŽ¥æ± çš„DataSourceçš„JNDI名称ä¸?mypool"的话åQŒé…¾|®åº”该如下:

hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.datasource mypool
hibernate.connection.provider_class net.sf.hibernate.connection.DatasourceConnectionProvider

其它参数ž®×ƒ¸å¿…å†™äº†ï¼Œå› äØ“å·²ç»åœ¨App Server配置˜qžæŽ¥æ± çš„æ—¶å€™æŒ‡å®šå¥½äº†ã€?

如果你不是在App Server环境中ä‹É用HibernateåQŒä¾‹å¦‚远½E‹å®¢æˆïL«¯½E‹åºåQŒä½†æ˜¯ä½ åˆæƒ³ç”¨App Server的数据库˜qžæŽ¥æ± ï¼Œé‚£ä¹ˆä½ è¿˜éœ€è¦é…¾|®JNDI的参敎ͼŒä¾‹å¦‚Hibernate˜qžæŽ¥˜qœç¨‹Weblogic上的数据库连接池åQ?

hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.datasource mypool
hibernate.connection.provider_class net.sf.hibernate.connection.DatasourceConnectionProvider
hibernate.jndi.class weblogic.jndi.WLInitialContextFactory
hibernate.jndi.url t3://servername:7001/


最后,如果你需要在EJB或者JTA中ä‹É用HibernateåQŒéœ€è¦å–消下行的注释åQ?

hibernate.transaction.factory_class net.sf.hibernate.transaction.JTATransactionFactory

杂项配置åQ?


hibernate.show_sql false

是否ž®†Hibernate发送给数据库的sql昄¡¤ºå‡ºæ¥åQŒè¿™æ˜¯ä¸€ä¸ªéžå¸”Ržå¸¸æœ‰ç”¨å¤„的功能。当你在调试Hibernate的时候,让Hibernate打印sql语句åQŒå¯ä»¥å¸®åЩ你˜q…速解决问题ã€?


#hibernate.connection.isolation 4

指定数据库的隔离¾U§åˆ«åQŒå¾€å¾€ä¸åŒçš„æ•°æ®åº“有自己定义的隔离¾U§åˆ«åQŒæœªå¿…是Hibernate的设¾|®æ‰€èƒ½æ›´æ”¹çš„åQŒæ‰€ä»¥ä¹Ÿä¸å¿…åŽÈ®¡å®ƒäº†ã€?

hibernate.jdbc.fetch_size 50 
hibernate.jdbc.batch_size 25 


˜q™ä¸¤ä¸ªé€‰é¡¹éžå¸¸éžå¸¸éžå¸¸é‡è¦åQï¼åQå°†ä¸¥é‡å½±å“Hibernateçš„CRUD性能!

C = create, R = read, U = update, D = delete

Fetch Size æ˜¯è®¾å®šJDBCçš„Statementè¯Õd–数据的时候每‹Æ¡ä»Žæ•°æ®åº“中取出的记录条数ã€?

例如一‹Æ¡æŸ¥è¯?万条记录åQŒå¯¹äºŽOracleçš„JDBC驱动来说åQŒæ˜¯ä¸ä¼š1‹Æ¡æ€§æŠŠ1万条取出来的åQŒè€Œåªä¼šå–出Fetch Size条数åQŒå½“¾Uªå½•集遍历完了这些记录以后,再去数据库取Fetch Size条数据ã€?

因此大大节省了无谓的内存消耗。当然Fetch Size讄¡š„­‘Šå¤§åQŒè¯»æ•°æ®åº“çš„‹Æ¡æ•°­‘Šå°‘åQŒé€Ÿåº¦­‘Šå¿«åQ›Fetch Size­‘Šå°åQŒè¯»æ•°æ®åº“çš„‹Æ¡æ•°­‘Šå¤šåQŒé€Ÿåº¦­‘Šæ…¢ã€?

˜q™æœ‰ç‚¹åƒòqÏx—¶æˆ‘们写程序写¼‹¬ç›˜æ–‡äšgä¸€æ øP¼Œè®„¡«‹ä¸€ä¸ªBufferåQŒæ¯‹Æ¡å†™å…¥BufferåQŒç­‰Buffer满了以后åQŒä¸€‹Æ¡å†™å…¥ç¡¬ç›˜ï¼Œé“理相同ã€?

Oracle数据库的JDBC驱动默认的Fetch Size=10åQŒæ˜¯ä¸€ä¸ªéžå¸æ€¿å®ˆçš„讑֮šåQŒæ ¹æ®æˆ‘的测试,当Fetch Size=50的时候,性能会提å?倍之多,当Fetch Size=100åQŒæ€§èƒ½˜q˜èƒ½¾l§ç®‹æå‡20%åQŒFetch Size¾l§ç®‹å¢žå¤§åQŒæ€§èƒ½æå‡çš„就不显著了ã€?

因此我徏议ä‹É用Oracle的一定要ž®†Fetch Size讑ֈ°50ã€?

不过òq¶ä¸æ˜¯æ‰€æœ‰çš„æ•°æ®åº“都支持Fetch Sizeç‰ÒŽ€§ï¼Œä¾‹å¦‚MySQLž®×ƒ¸æ”¯æŒã€?

MySQLž®±åƒæˆ‘上面说的那¿Uæœ€åçš„æƒ…况åQŒä»–æ€ÀL˜¯ä¸€ä¸‹å°±æŠ?万条记录完全取出来,内存消耗会非常非常惊ähåQè¿™ä¸ªæƒ…况就没有什么好办法äº?nbsp;:(

Batch Size是设定对数据库进行批量删除,扚w‡æ›´æ–°å’Œæ‰¹é‡æ’入的时候的æ‰Òެ¡å¤§å°åQŒæœ‰ç‚¹ç›¸å½“于讄¡½®Buffer¾~“冲区大ž®çš„æ„æ€ã€?

Batch Size­‘Šå¤§åQŒæ‰¹é‡æ“ä½œçš„向数据库发送sql的次数越ž®‘,速度ž®Þp¶Šå¿«ã€‚我做的一个测试结果是当Batch Size=0的时候,使用Hibernate对Oracle数据库删é™?万条记录需è¦?5¿U’,Batch Size = 50的时候,删除仅仅需è¦?¿U’!åQï¼

可见有多么大的性能提升åQå¾ˆå¤šäh做Hibernateå’ŒJDBC的插入性能‹¹‹è¯•会奇怪的发现Hibernate速度臛_°‘是JDBC的两倍,ž®±æ˜¯å› äØ“Hibernate使用了Batch InsertåQŒè€Œä»–们写的JDBC没有使用Batch的缘故ã€?

以我的经验来看,Oracle数据åº?nbsp;Batch Size = 30 çš„æ—¶å€™æ¯”较合适,50也不错,性能会ç‘ô¾l­æå‡ï¼Œ50以上åQŒæ€§èƒ½æå‡çš„非常微弱,反而消耗内存更加多åQŒå°±æ²¡æœ‰å¿…要了ã€?


#hibernate.jdbc.use_scrollable_resultset true

è®‘Ö®šæ˜¯å¦å¯ä»¥ä½¿ç”¨JDBC2.0规范的可滚动¾l“果集,˜q™å¯¹Hibernate的分™å‰|˜¾½Cºæœ‰ä¸€å®šçš„作用åQŒé»˜è®¤å°±å¥½äº†ã€?

#hibernate.cglib.use_reflection_optimizer false 


默认打开åQŒå¯ç”¨cglib反射优化。cglib是用来在Hibernate中动态生成PO字节码的åQŒæ‰“开优化可以加快字节码构造的速度ã€?

不过åQŒå½“你在调试½E‹åº˜q‡ç¨‹ä¸­ï¼Œç‰¹åˆ«æ˜¯å’ŒproxyåQŒlazy loading相关的应用中åQŒä»£ç å‡ºé”™ï¼Œä½†æ˜¯å‡ºé”™æç¤ºä¿¡æ¯æœ‰è¯­ç„‰ä¸è¯¦ï¼Œé‚£ä¹ˆä½ å¯ä»¥æŠŠcglib优化å…ÏxމåQŒè¿™æ ·Hibernate会输出比较详¾l†çš„调试信息åQŒå¸®åЩ你debugã€?


]]>
spring+hibernate+oracle9i用clobhttp://www.aygfsteel.com/darkbluefeeling/archive/2005/11/18/20387.htmlæ·Þp“è‰²å¿ƒæƒ?/dc:creator>æ·Þp“è‰²å¿ƒæƒ?/author>Fri, 18 Nov 2005 02:42:00 GMThttp://www.aygfsteel.com/darkbluefeeling/archive/2005/11/18/20387.htmlhttp://www.aygfsteel.com/darkbluefeeling/comments/20387.htmlhttp://www.aygfsteel.com/darkbluefeeling/archive/2005/11/18/20387.html#Feedback2http://www.aygfsteel.com/darkbluefeeling/comments/commentRss/20387.htmlhttp://www.aygfsteel.com/darkbluefeeling/services/trackbacks/20387.html 
数据库驱动更æ–îCØ“classes12-9i.jar
修改hibernate的配¾|®å¦‚ä¸?BR>
代码
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/>

<bean id="oracleLobHandle" class="org.springframework.jdbc.support.lob.OracleLobHandler" Lazy-init="true">
 
<property name="nativeJdbcExtractor">
   
<ref local="nativejdbcExtractor"/>
 
</property>
</bean>


在有clob¾cÕdž‹sessionFactory(org.springframework.com.hibernate.LocalSessionFractoryBean)中加å…?BR><property name="lobHandler"><ref bean="oracleLobHandle"/></property>

在需要clobçš„JavaBean对应的hbm.xml中,改对应的clob¾cÕdž‹çš„å­—ŒD?BR>
代码
<property
 
name=""
 type
="org.springframework.orm.hibernate.support.ClobStringType"
 clumn
=""
 length
="XXXXXX" <!--定义clob字段大小(ä»¥å­—èŠ‚äØ“å•ä½åQŒæœ€å¤?GB)-->
>

JavaBeançš„å¯¹åº”çš„å±žæ€§ç±»åž‹äØ“String

------------------------------------------------------------------------------
----hibernate3 使用blob �clob 演例代码-----

hibernate3 使用blob å’?clob 演例代码åQ?BR>
 1import java.io.File;
 2import java.io.FileInputStream;
 3import java.io.OutputStream;
 4import java.io.Writer;
 5import java.sql.Clob;
 6import oracle.sql.CLOB;
 7import org.hibernate.LockMode;
 8import org.hibernate.Transaction;
 9import org.hibernate.Session;
10import org.hibernate.Hibernate;
11import org.hibernate.lob.SerializableBlob;
12import org.hibernate.lob.SerializableClob;
13
14
15public class test1 {
16
17        /**
18         * @param args
19         */

20        static Session session = HibernateSessionFactory.currentSession();
21        
22        public boolean inserted(TStu obj){
23                
24                Transaction tran = session.beginTransaction();
25                session.save(obj);
26                session.flush();
27                session.refresh(obj,LockMode.UPGRADE);
28                try
29                {
30                SerializableBlob sb = (SerializableBlob)obj.getImg();
31                java.sql.Blob wrapblob = sb.getWrappedBlob();
32                if(wrapblob instanceof oracle.sql.BLOB){
33                         oracle.sql.BLOB blob = (oracle.sql.BLOB) wrapblob;
34                OutputStream bout = blob.getBinaryOutputStream();
35                FileInputStream fin = new FileInputStream("d:\\a.jpg");//修改你要存入的图ç‰?/SPAN>
36                byte [] buf = new byte[10240];//åšäØ“10K的缓存写å…?/SPAN>
37                int len;
38                while((len = fin.read(buf))>0){
39                        bout.write(buf,0,len);
40                }

41                bout.close();
42                fin.close();
43                }

44                
45                SerializableClob  sc = (SerializableClob)obj.getResu();
46                Clob wrapclob = sc.getWrappedClob();
47                if(wrapclob instanceof CLOB){
48                        CLOB clob = (CLOB)wrapclob; 
49                        Writer cout = clob.getCharacterOutputStream();
50                        File file = new File("C:\\log_2005_8.txt");//修改你要存如的文æœ?/SPAN>
51                        FileInputStream fin = new FileInputStream(file);
52                        int read;
53                        while((read = fin.read())!= -1){
54                                cout.write(read);
55                        }

56                        fin.close();
57                        cout.close();
58                }

59                
60                tran.commit();
61                return true;
62                }
catch(Exception ex){
63                        ex.printStackTrace();
64                        tran.rollback();
65                        return false;
66                }

67        }

68        
69        public static void main(String[] args) {
70                // TODO Auto-generated method stub         
71                test1 t = new test1();
72                 TStu stu = new TStu();
73                 stu.setAge(new Integer("23"));
74                 stu.setName("lilei");
75                 stu.setImg(Hibernate.createBlob(new byte[1]));
76                 stu.setResu(Hibernate.createClob(" "));
77                 t.inserted(stu);        
78        }

79}

80
81



org link: http://www.matrix.org.cn/thread.shtml?topicId=27138&forumId=23


]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º Ú«ºÓÊÐ| ¶ÁÊé| ÆÕÍÓÇø| ÇßÔ´ÏØ| ÉñÄ¾ÏØ| ºù«µºÊÐ| ÎÞ¼«ÏØ| ºôÂ×±´¶ûÊÐ| ¼ªÂ¡ÏØ| ͨÐíÏØ| ·½³ÇÏØ| ÄþÏÄ| Íß·¿µêÊÐ| ´óÖñÏØ| ²áºàÏØ| ÓñÊ÷ÏØ| аͶû»¢ÓÒÆì| Ó¢¼ªÉ³ÏØ| »´±õÏØ| Ì¨Ç°ÏØ| ξÀçÏØ| ÎijÉÏØ| ¾²ÀÖÏØ| Ñ·¿ËÏØ| »¥Öú| ÏØ¼¶ÊÐ| »ÝË®ÏØ| µæ½­ÏØ| ºéºþÊÐ| ÔªÊÏÏØ| Îä¸ÔÊÐ| ÀÖɽÊÐ| Ì©ÖÝÊÐ| ÇåË®ºÓÏØ| ÷ëÓÎÏØ| ÁÙ¹ðÏØ| µÇúÏØ| ²ýÀÖÏØ| ÕѾõÏØ| ¿â¶ûÀÕÊÐ| ÄþÝõ|