﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-henry1451 的专栏</title><link>http://www.blogjava.net/henry1451/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 17 Apr 2026 10:37:00 GMT</lastBuildDate><pubDate>Fri, 17 Apr 2026 10:37:00 GMT</pubDate><ttl>60</ttl><item><title>关于ORCLE排名查询</title><link>http://www.blogjava.net/henry1451/archive/2009/09/30/297039.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Wed, 30 Sep 2009 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/09/30/297039.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/297039.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/09/30/297039.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/297039.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/297039.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在实际开发运用中,常会有关于查询排名的需求,如查询某一数据完成比率情况,通常可以用自身表先进行相关计算查询,再和原表进行关联进行查询,即可查询出相关所需的数据.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如:要查询某一农田拆迁情况,需查询拆迁项目名,拆迁完成比率,可这样查询:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select tt.projectname ,tt.wzbl, DENSE_RANK() OVER ( ORDER BY tt.wzbl DESC) as bm from<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select * from kp_confiscate t0,(select kf.promiseunfinished/kf.taskridgepole*0.5+kf.finishedridgepole/kf.taskridgepole as wzbl,kf.id from kp_confiscate kf ) t1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where t0.id=t1.id <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) tt;<br />
<br />
&nbsp;<br />
&nbsp;&nbsp; 其中:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; promiseunfinished:签订协议未拆完数;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finishedridgepole:已拆完数;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; taskridgepole&nbsp;:任务数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 拆迁完成比例=签订协议未拆完数/任务数x50%+已拆完数/任务数<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 拆迁完成比例即为所需查询数据.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 即查询时,先对自身表进行相关计算查询(实际的需求就在这个子查询中完成),然后作为一个子表,和原表进行关联查询.<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注:子表中查询时,要指定查询下某字段,此字段是和原字段进行关联查询时用的,且应为唯一字段,在和原表关联查询时,不应有冗余的数据出现.
<img src ="http://www.blogjava.net/henry1451/aggbug/297039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-09-30 17:38 <a href="http://www.blogjava.net/henry1451/archive/2009/09/30/297039.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Oracle中找出重复的纪录的方法</title><link>http://www.blogjava.net/henry1451/archive/2009/06/12/281766.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Fri, 12 Jun 2009 02:56:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/06/12/281766.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/281766.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/06/12/281766.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/281766.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/281766.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在一些数据表中,可能会有一些重复(某一字段,或全部字段)的数据,根据需求,可能要去掉这些重复的数据,下面是常用的方法:<br />
--表 test有重复的记录1,10<br />
　　SQL&gt; select&nbsp; *&nbsp; from tt;<br />
　　 ID<br />
　　----------<br />
　　 1<br />
　　 2<br />
　　 3<br />
　　 4<br />
　　 10<br />
　　 1<br />
　　 1<br />
　　 1<br />
　　 1<br />
　　 1<br />
　　 10<br />
　　11 rows selected.<br />
<br />
　　--查询表中的哪些记录有重复<br />
　　SQL&gt; select * from tt&nbsp; group by id having count(*)&gt;1;<br />
　　 ID<br />
　　----------<br />
　　 1<br />
　　 10<br />
<br />
　　--查询出没有重复记录的结果集<br />
　　SQL&gt; select * from tt&nbsp; group by id;<br />
　　 ID<br />
　　----------<br />
　　 1<br />
　　 2<br />
　　 3<br />
　　 4<br />
　　 10<br />
　　SQL&gt; select distinct * from tt;<br />
　　 ID<br />
　　----------<br />
　　 1<br />
　　 2<br />
　　 3<br />
　　 4<br />
　　 10<br />
<br />
　　--删除重复的记录<br />
　　SQL&gt; delete from tt&nbsp; a where a.rowid!=(select max(rowid) from tt&nbsp; b <br />
　　 2 where a.id=b.id);<br />
　　6 rows deleted.<br />
　　SQL&gt; commit;<br />
　　Commit complete.<br />
<br />
　　--删除后的查询结果集<br />
　　SQL&gt; select * from tt;<br />
　　 ID<br />
　　----------<br />
　　 2<br />
　　 3<br />
　　 <br />
　　 <br />
　　 4<br />
　　 1<br />
　　 10<br />
<img src ="http://www.blogjava.net/henry1451/aggbug/281766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-06-12 10:56 <a href="http://www.blogjava.net/henry1451/archive/2009/06/12/281766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于对List的iterator()使用</title><link>http://www.blogjava.net/henry1451/archive/2009/05/20/271769.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Wed, 20 May 2009 10:08:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/05/20/271769.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/271769.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/05/20/271769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/271769.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/271769.html</trackback:ping><description><![CDATA[<p><br />
<font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在程序中我们常会使用<font style="background-color: #cbe9cb">List存储类型来保存某一系列的数据,如字符串,对象等,当然,在存储时没问题,直接往里放即OK了,但在取出来用的时候,就要注意了,我们一般是用一个For循环来一一取出我们所需的对象数据,如:<br />
<font style="background-color: #cbe9cb">&nbsp;<br />
<font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator it = Items.iterator(); it.hasNext();) {...<font style="background-color: #cbe9cb">ItemObject subject = (<font style="background-color: #cbe9cb">ItemObject </font>) it.next()---(1);System.out.println(subject.getId()---(2);)</font>...}<br />
</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 即用List的<font style="background-color: #cbe9cb">iterator()</font>迭代方法,取出对象,然后进行强制转换,转换为我们当时保存的对象类型,但这当Items对象不为空,且有数据内容时,这样使用是没问题的,如果Items对象为空,或Items对象不为空,但数据内容0(即没有存储相应的数据对象)时,这样直接用FOR循环是会报错的,通常会报:<font style="background-color: #cbe9cb">java.util.NoSuchElementException</font>这样的异常,意思即没有相应的对象项,因为当我们取出了某一条数据后,进行了强制转换,但取出的数据并不是我们强制转换的对象类型,所以当然会报这样的异常的.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实在上面举的代码例子中,(1)这一步并不会报错的,报错其实是由(2)这一步引起的,因为subject并不是<font style="background-color: #cbe9cb">ItemObject </font>对象类型,但还要调用它的方法,所以肯定就会报错的.\<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以一般在使用<font style="background-color: #cbe9cb">List的iterator()</font>的方法时,最好在代码前加一句判断:&nbsp; if (&nbsp;Items&nbsp; !=&nbsp; null&nbsp;&nbsp; &amp;&amp;&nbsp; Items.size()&gt;0&nbsp; )&nbsp; {.........}&nbsp;,这样就可以尽情的使用,而不会报错了.<br />
</font></font></font></p>
<img src ="http://www.blogjava.net/henry1451/aggbug/271769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-05-20 18:08 <a href="http://www.blogjava.net/henry1451/archive/2009/05/20/271769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于带包时classpath的设置</title><link>http://www.blogjava.net/henry1451/archive/2009/05/05/269018.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Tue, 05 May 2009 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/05/05/269018.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/269018.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/05/05/269018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/269018.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/269018.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;由于经常使用ECLIPSE 等IDE开发工具,以至于要在命令行中运行某一带包的CLASS文件时,一时还记不清如何正确的设置classpath,以便JVM正确的寻找到要执行的CLASS,要执行不带包的CLASS文件,好说,在环境变量中设定 classpath ,值指向CLASS文件所在路径,然后在命令行中直接执行:JAVA&nbsp; Abc(类文件)即可,如果是要执行带包的CLASS文件,在设置classpath时,要注意了,是将classpath的值指向CLASS文件包的上一层目录,例:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有一带包的类文件: Student.class,所在包为com.app.test,而这个Student.class类文件的绝对路径为:<br />
<font style="background-color: #cbe9cb">D:\eclipse3.2\workspace\MyProject\com\app\test\Student.class,</font>在设置classpath时,应将classpath的值设置为:<font style="background-color: #cbe9cb">D:\eclipse3.2\workspace\MyProject\</font>,而不是<font style="background-color: #cbe9cb">D:\eclipse3.2\workspace\MyProject\com\app\test</font>\这样带包的路径,否则在执行时会提示找不到相应的类文件.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置好classpath后,然后在命令行中,在任何目录下(前提要设置好path),执行:java&nbsp; com.app.test.Student即可,注意这里要带包名,否则也同样会提示找不到相应的类.
<img src ="http://www.blogjava.net/henry1451/aggbug/269018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-05-05 17:01 <a href="http://www.blogjava.net/henry1451/archive/2009/05/05/269018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle关联查询时对关联字段的数据类型要求</title><link>http://www.blogjava.net/henry1451/archive/2009/04/09/264668.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Thu, 09 Apr 2009 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/04/09/264668.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/264668.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/04/09/264668.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/264668.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/264668.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在ORACLE中进行关联查询时,作为关联查询的两字段数据类型要一至,否则会报:<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">ORA</span><span style="color: #808080">-</span><span style="font-weight: bold; color: #800000">01722</span><span style="color: #000000">:invalid&nbsp;</span><span style="font-weight: bold; color: #000000">number</span><span style="color: #000000">&nbsp;</span></div>
<br />
这样的错误,如下查询语句: <br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;A&nbsp;a,B&nbsp;b&nbsp;&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;a.loginid</span><span style="color: #808080">=</span><span style="color: #000000">b.userid;</span></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果a.loginid的数据类型为:number(n),而b.userid的数据类型为:varchar2(n),则会报上面的错误,要二者为同一数据类型,上面的查询语句才能正确的被执行,平时可能在做一些查询统计时没注意这些问题(可能表结构是别人事先已经建好了的,而我们只是去使用而于),所以当我们在设计表结构时,如果以后某两表(或多表)之间存在关联关系,即查询相关数据时,要关联它们之间的某些字段,这时我们就要注意了,要将到时可能用于关联查询的字段的数据类型设计为相同的类型,当然字段长度可以不一样,这样到时关联查询时就不会有问题了,否则以后还要改字段数据类型,而且此时表中又有了数据,为了防止数据丢失,改起来还有点麻烦.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这种问题在ORACLE关系数据库中会出现,在其它关系数据库中不知道会不会出现,猜测可能也会有类似问题.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注:&nbsp; 这可能是一个很简单的问题,但这确可能是很容易忽视的问题,有时在设计表结构时,可能会由于考虑不周,造成以后要关联查询相关数据时出现上面的错误,从而要去改变表的字段类型,从而带来一些不必要的麻烦.<br />
<img src ="http://www.blogjava.net/henry1451/aggbug/264668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-04-09 16:49 <a href="http://www.blogjava.net/henry1451/archive/2009/04/09/264668.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个男人必须明白的22个道理 【转载】</title><link>http://www.blogjava.net/henry1451/archive/2009/04/08/264401.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Wed, 08 Apr 2009 02:12:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/04/08/264401.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/264401.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/04/08/264401.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/264401.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/264401.html</trackback:ping><description><![CDATA[<br />
1、男人是社会的主体，不管你信或不信。所以男人应该有种责任感。 <br />
2、25岁之前，请记得，爱情通常是假的，或者不是你所想象的那样纯洁和永远。如果你过了25岁，那么你应该懂得这个道理。 <br />
3、吃饭7成饱最舒服。对待女友最多也请你保持在7成。 <br />
4、30岁之前请爱惜自己的身体，前30年你找病，后30年病找你。如果你过了30岁,你自然也会懂得这个道理。 <br />
5、事业远比爱情重要。如果说事业都不能永恒，那么爱情只能算是昙花一现。 <br />
6、不要轻易接受追求你的女孩。女追男隔层纱，如果你很容易就陷进去，你会发现你会错过很多东西，失去很多东西。 <br />
7、请你相信，能用钱解决的问题，都不是问题。如果你认为钱索王道，有钱有女人，没钱没女人，那么，女人不是问题。 <br />
8、请永远积极向上。每个男人都有他可爱的地方，但是不可爱的地方只有：不积极面对生活。 <br />
9、不要连续2次让同一个女人受到伤害。好马不吃回头草是有道理的。如果认真考虑过该分手，那么请不要做任何舍不得的行动。 <br />
10、如果你和你前女友能做朋友，那么你要问自己：为什么？如果分手后还是朋友，那么只有2个可能：你们当初都只是玩玩而已，没付出彼此最真的感情；或者：必定有个人是在默默的付出无怨无悔！ <br />
11、永远不要太相信女人在恋爱时的甜言蜜语。都说女人爱听甜言蜜语，其实，男人更喜欢。 <br />
12、请不要为自己的相貌或者身高过分担心和自卑。人是动物，但是区别于动物。先天条件并不是阻挡你好好生活的借口。人的心灵远胜于相貌，请相信这点。如果有人以相貌取人，那么你也没必要太在意。因为他从某种意义来讲，只是只动物，你会跟动物怄气吗？ <br />
13、失恋时，只有2种可能，要么你爱她她不爱你，或者相反。那么，当你爱的人不再爱你，或者从来没爱过你时，你没有遗憾，因为你失去的只是一个不爱你的人。 <br />
14、请不要欺骗善良的女孩。这个世界上善良的女孩太少。 <br />
15、不能偏激的认为金钱万能，至少，金钱治不好艾滋病。 <br />
16、请一定要有自信。你就是一道风景，没必要在别人风景里面仰视。 <br />
17、受到再大的打击，只要生命还在，请相信每天的太阳都是新的。 <br />
18、爱情永远不可能是天平。你想在爱情里幸福就要舍得伤心。 <br />
19、如果你喜欢一个她认为别人应该对她好的MM，请尽早放弃。没有人是应该对一个人好的。如果她不明白这个道理，也就是她根本不懂得珍惜。 <br />
20、不要因为寂寞而&#8220;找&#8221;GF，寂寞的男人请要学会品味寂寞。请记住：即使寂寞，远方黑暗的夜空下，一定有人和你一样，寂寞的人不同，仰望的星空却是唯一。 <br />
21、任何事没有永远，也别问怎样才能永远。生活有很多无奈，请尽量充实自己，充实生活。请善待生活&#8230;&#8230; <br />
<br />
最后、男人有很多无奈，生活很累，但是因为生活才有意义。当你以为你一无所有时，你至少还有时间，时间能抚平一切创伤。所以请不要流泪。 <br />
<img src ="http://www.blogjava.net/henry1451/aggbug/264401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-04-08 10:12 <a href="http://www.blogjava.net/henry1451/archive/2009/04/08/264401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>少走弯路的十条忠告【转载】</title><link>http://www.blogjava.net/henry1451/archive/2009/04/08/264398.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Wed, 08 Apr 2009 02:00:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/04/08/264398.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/264398.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/04/08/264398.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/264398.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/264398.html</trackback:ping><description><![CDATA[&nbsp;<br />
1. 买个闹钟，以便按时叫醒你。 <br />
<br />
贪睡和不守时，都将成为你工作和事业上的绊脚石，任何时候都一样。不仅要学会准时，更要学会提前。就如你坐车去某地，沿途的风景很美，你忍不住下车看一看，后来虽然你还是赶到了某地，却不是准时到达。&#8220;闹钟&#8221;只是一种简单的标志和提示，真正灵活、实用的时间，掌握在每个人的心中。 <br />
<br />
<br />
2. 如果你不喜欢现在的工作，要么辞职不干，要么就闭嘴不言。 <br />
<br />
初出茅庐，往往眼高手低，心高气傲，大事做不了，小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞，不带伞又怕淋雨，处处表现出不满的情绪。记住，不做则已，要做就要做好。 <br />
<br />
3. 每个人都有孤独的时候。 <br />
<br />
要学会忍受孤独，这样才会成熟起来。年轻人嘻嘻哈哈、打打闹闹惯了，到了一个陌生的环境，面对形形色色的人和事，一下子不知所措起来，有时连一个可以倾心说话的地方也没有。这时，千万别浮躁，学会静心，学会忍受孤独。在孤独中思考，在思考中成熟，在成熟中升华。不要因为寂寞而乱了方寸，而去做无聊无益的事情，白白浪费了宝贵的时间。 <br />
<br />
<br />
4. 走运时要做好倒霉的准备。 <br />
<br />
有一天，一只狐狸走到一个葡萄园外，看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着，无法进去。于是它一狠心绝食三日，减肥之后，终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时，发觉自己吃得太饱，怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。饱带干粮，晴带雨伞，点滴积累，水到渠成。有的东西今天似乎一文不值，但有朝一日也许就会身价百倍。 <br />
<br />
5. 不要像玻璃那样脆弱。 <br />
<br />
有的人眼睛总盯着自己，所以长不高看不远；总是喜欢怨天尤人，也使别人无比厌烦。没有苦中苦，哪来甜中甜？不要像玻璃那样脆弱，而应像水晶一样透明，太阳一样辉煌，腊梅一样坚强。既然睁开眼睛享受风的清凉，就不要埋怨风中细小的沙粒。 <br />
<br />
<br />
6. 管住自己的嘴巴。 <br />
<br />
不要谈论自己，更不要议论别人。谈论自己往往会自大虚伪，在名不副实中失去自己。议论别人往往陷入鸡毛蒜皮的是非口舌中纠缠不清。每天下班后和你的那些同事朋友喝酒聊天可不是件好事，因为，这中间往往会把议论同事、朋友当做话题。背后议论人总是不好的，尤其是议论别人的短处，这些会降低你的人格。 <br />
7. 机会从不会&#8220;失掉&#8221;，你失掉了，自有别人会得到。 <br />
<br />
不要凡事在天，守株待兔，更不要寄希望于&#8220;机会&#8221;。机会只不过是相对于充分准备而又善于创造机会的人而言的。也许，你正为失去一个机会而懊悔、埋怨的时候，机会正被你对面那个同样的&#8220;倒霉鬼&#8221;给抓住了。没有机会，就要创造机会，有了机会，就要巧妙地抓住。 <br />
<br />
<br />
8. 若电话老是不响，你该打出去。 <br />
<br />
很多时候，电话会给你带来意想不到的收获，它不是花瓶，仅仅成为一种摆设。交了新朋友，别忘了老朋友，朋友多了路好走。交际的一大诀窍就是主动。好的人缘好的口碑，往往助你的事业更上一个台阶。 <br />
9. 千万不要因为自己已经到了结婚年龄而草率结婚。 <br />
<br />
想结婚，就要找一个能和你心心相印、相辅相携的伴侣。不要因为放纵和游戏而恋爱，不要因为恋爱而影响工作和事业，更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。 <br />
<br />
<br />
10. 写出你一生要做的事情，把单子放在皮夹里，经常拿出来看。 <br />
<br />
人生要有目标，要有计划，要有提醒，要有紧迫感。一个又一个小目标串起来，就成了你一生的大目标。生活富足了，环境改善了，不要忘了皮夹里那张看似薄薄的单子。 <br />
<img src ="http://www.blogjava.net/henry1451/aggbug/264398.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-04-08 10:00 <a href="http://www.blogjava.net/henry1451/archive/2009/04/08/264398.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ClientAbortException 异常解决办法</title><link>http://www.blogjava.net/henry1451/archive/2009/03/20/261105.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Fri, 20 Mar 2009 10:03:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/03/20/261105.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/261105.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/03/20/261105.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/261105.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/261105.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当我们用Servlet导出图片,或用JSP导出excel时,会弹出一个下载窗口,这时不点下载而点取消，则报下面的异常:</span><br />
ClientAbortException&nbsp; Caused by: java.net.SocketException: Connection reset by peer: socket write error
<p>在网上查找了了下原因，大概归结为： <br />
<strong>ClientAbortException: </strong>java.net.SocketException: Connection reset by peer: socket write error的原因是由于处理http连接时，正在输出内容时，用户关闭了IE，会出现一个"ClientAbortException"，属于I/O处理中出现的一个异常，应用服务器应该会捕捉。 <br />
<strong>Connection reset by peer</strong>的原因： <br />
经常出现的Connection reset by peer: 原因可能是多方面的，不过更常见的原因是： <br />
①：服务器的并发连接数超过了其承载量，服务器会将其中一些连接Down掉； <br />
②：客户关掉了浏览器，而服务器还在给客户端发送数据； <br />
③：浏览器端按了Stop&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 很多人都说是客户端造成的,没有办法控制,而且后台会记录这个异常，日志也会疯狂爆满,时间长了,肯定会DOWN掉的.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本人觉得大多数可能是第二条问题的原因引起的,即大多数浏览器阻止了窗口的弹出,相当于客户关掉了浏览器,可等效于浏览器端按了Stop ,而这时服务器端还在给客户端发送数据,所以产生了上异常,经过本人的测试,发现只需将网站地址(或本机地址)加入"受信任的站点"即可解决问题,因为这样设置了以后,浏览器就不会阻止窗口的弹出了,这样浏览器就会等到服务器端发送完数据后再进行下面的动作.因而异常就不会发生了.<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大概设置方式如下:"工具-&gt;internet(选项..)-&gt;安全-&gt;受信任的站点-&gt;站点",将地址加入即可.</p>
<img src ="http://www.blogjava.net/henry1451/aggbug/261105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-03-20 18:03 <a href="http://www.blogjava.net/henry1451/archive/2009/03/20/261105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改ORACLE数据字段类型</title><link>http://www.blogjava.net/henry1451/archive/2009/03/04/257741.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Wed, 04 Mar 2009 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/03/04/257741.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/257741.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/03/04/257741.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/257741.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/257741.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在ORACLE数据库表中,有时会有需要更改数据库表中字段类型的情况,比如由NUMBER(5)改为<br />
VARCHAR(50)...,这时就要视情况来更改了,如果原数据库表中没有数据,则可以直接使用:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;&nbsp;test&nbsp;&nbsp;modify&nbsp;&nbsp;name&nbsp;&nbsp;</span><span style="font-weight: bold; color: #000000">VARCHAR2</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000">);</span></div>
<font style="background-color: #cbe9cb"><font style="background-color: #cbe9cb"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="background-color: #cbe9cb">但是有数据的话 就不能用上面方法了,</font>
<p><font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;test&nbsp;</span><span style="color: #0000ff">add</span><span style="color: #000000">&nbsp;&nbsp;name_temp&nbsp;</span><span style="font-weight: bold; color: #000000">number</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">5</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;test&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;&nbsp;name_temp</span><span style="color: #808080">=</span><span style="color: #000000">name;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">column</span><span style="color: #000000">&nbsp;name;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;&nbsp;test&nbsp;rename&nbsp;</span><span style="color: #0000ff">column</span><span style="color: #000000">&nbsp;&nbsp;name_temp&nbsp;</span><span style="color: #0000ff">to</span><span style="color: #000000">&nbsp;name;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p></font></p>
<p><font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响</font></p>
<p><font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以下方法是比较好的方法</font></p>
<p><font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次</font></p>
<p><font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做 </font></p>
<p><font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要是不停机的话 ,也可以采用在线重定义方式来做 </font></p>
<p><font style="background-color: #cbe9cb">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以下是脚本:</font><font style="background-color: #cbe9cb"></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;test&nbsp;&nbsp;</span><span style="color: #0000ff">add</span><span style="color: #000000">&nbsp;name_temp&nbsp;</span><span style="font-weight: bold; color: #000000">number</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">5</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;&nbsp;test&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;name_temp</span><span style="color: #808080">=</span><span style="color: #000000">name,name</span><span style="color: #808080">=</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;&nbsp;test&nbsp;&nbsp;modify&nbsp;name&nbsp; VARCHAR2(</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update</span><span style="color: #000000">&nbsp;&nbsp;test&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;name</span><span style="color: #808080">=</span><span style="color: #000000">name_temp,name_temp</span><span style="color: #808080">=</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; commit</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alter</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;&nbsp;test&nbsp;&nbsp;</span><span style="color: #0000ff">drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">column</span><span style="color: #000000">&nbsp;name_temp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">desc</span><span style="color: #000000">&nbsp;test;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
</font></font></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样就不会出现上述的问题了.
<img src ="http://www.blogjava.net/henry1451/aggbug/257741.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-03-04 11:42 <a href="http://www.blogjava.net/henry1451/archive/2009/03/04/257741.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cosmos框架(转)</title><link>http://www.blogjava.net/henry1451/archive/2009/01/14/251297.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Wed, 14 Jan 2009 08:13:00 GMT</pubDate><guid>http://www.blogjava.net/henry1451/archive/2009/01/14/251297.html</guid><wfw:comment>http://www.blogjava.net/henry1451/comments/251297.html</wfw:comment><comments>http://www.blogjava.net/henry1451/archive/2009/01/14/251297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/henry1451/comments/commentRss/251297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/henry1451/services/trackbacks/251297.html</trackback:ping><description><![CDATA[<div class="postText">cosmos框架主要用来做中小项目开发，丢弃了传统的SSH架构，利用纯的Servlet+JDBC实现数据库操作。开发Web项目，可以实现无需写Java代码，而实现业务逻辑，并且由于不需要写Java代码，因此，可以不需要重启和重新部署项目，就可以直接测试，达到了开发-&gt;刷新测试的水平。根据目前多个项目的应用实践看来，基本上可以提高一倍到2/3的开发时间，而且性能比起SSH架构还要高，框架还要更加轻量级。因此，这个框架还是比较能够体现敏捷开发的思想的。<br />
<br />
由于框架摒弃了Hibernate的O/R Mapping工具，因此有一个比较大的问题就是关于数据库移植性的问题，但是，根据公司对于中小项目的经验，一旦客户要移植数据库，几乎就需要重新实现业务逻辑了，因此，对于中小项目来说，这是一个不错的选择。<br />
<br />
——————<br />
官方介绍：<br />
<div id="wikicontent" style="padding-right: 3em; padding-left: 0pt; padding-bottom: 1.2em; padding-top: 0pt">
<p>cosmos框架是一个对于底层数据库、Web服务、JNDI等进行统一界面封装的框架，提供统一的调用接口，并采用命令设计模式，将所有需要调用的命令放置到数据库（或者其他域）中去，从而可以改变传统的j2ee应用调试的流程：开发-部署-测试或者开发-部署-重新启动-测试，达到像PHP、PERL那样的开发 -&gt;测试的模式。有效地提高了开发速度。 </p>
<blockquote>由于其抛弃了所有的中间层次，包括像Struts、Spring、Hibernate这样的框架，调用数据库应用直接用JDBC的方式进行，因此有效地提高了运行性能。由于开发的代码可以完全放置到数据库中，因此，可以比较容易地实现共享开发，从而有效地调动起开发人员的积极性。在cosmos框架中开发一个数据库应用的流程是：开发SQL语句或者存储过程或者函数；然后开发JSP页面进行展示；最后测试结果。完全地省略了开发Java代码的过程，因此，有效地提高了开发速度。 cosmos框架是一个能有效地应用于中小项目的框架，可以供开发人员快速建立原型，从而实现敏捷开发的目的。在框架中还包括权限和认证的部分框架，因此，用户可以简单地实现用户认证和系统权限的功能。 </blockquote></div>
<br />
<br />
http://code.google.com/p/cosmos4j/<br />
</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确实,对于一些中小型项目,这些框架还是很值得去使用的,无论对项目开发效率,开发难度等,相对那些大框架还是有一定优势的.
<img src ="http://www.blogjava.net/henry1451/aggbug/251297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/henry1451/" target="_blank">henry1451</a> 2009-01-14 16:13 <a href="http://www.blogjava.net/henry1451/archive/2009/01/14/251297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>