軟件是對(duì)質(zhì)量的不懈追求

          #

          使用css顯示空白表格單元邊框

          When you create a html table and apply a border using CSS, then the empty cells do not have a border. So you pull out your CSS book and find empty-cells:show; and think your problems are solved but empty-cells is unsupported in IE…go figure. But I have found a combination of styles that work. Try this…apply the border-collapse:collapse; and empty-cells:show; to the table level and IE will display borders around empty cells.   

          posted @ 2009-11-14 13:30 BlakeSu 閱讀(306) | 評(píng)論 (0)編輯 收藏

          Spring DAO 異常類

          Spring數(shù)據(jù)訪問的根異常是DataAccessException,所有的Spring的數(shù)據(jù)訪問異常都繼承DataAccessException。
          DataAccessException的nestedRuntimeException子類中,已經(jīng)將所有的異常棧都進(jìn)行了記錄。

          CleanupFailureDataAccessException:清除失敗異常

          DataAccessResourceFailureException:資源訪問異常

          DataIntegrityViolationException:完整性約束異常

          DataRetrievalFailureException:數(shù)據(jù)獲取異常

          DeadlockLoserDataAccessException:死鎖訪問異常

          IncorrectUpdateSemanticsDataAccessException:更新出錯(cuò)異常

          InvalidDataAccessApiUsageException:無效數(shù)據(jù)訪問API使用異常

          InvalidDataAccessResourceUsageException:無效數(shù)據(jù)訪問資源使用異常

          OptimisticLockingFailureException:樂觀鎖失敗異常

          TypeMismatchDataAccessException:類型匹配失敗異常

          UncategorizedDataAccessException:其他原因異常

          posted @ 2009-11-14 13:28 BlakeSu 閱讀(278) | 評(píng)論 (0)編輯 收藏

          myeclipse 確實(shí)很爛 & 好用的xml編輯器分享

          搞了一天mylyn也沒搞定,郁悶透頂了。今天偶爾翻日志,才發(fā)現(xiàn)原來是springide惹得貨,似乎跟mylyn存在沖突。唉,這個(gè)破爛 myeclipse,沒有sping可以,沒有mylyn可是很難生存的啊。 于是對(duì)springide痛下殺手,終于搞定了。。呵呵

            不過今天發(fā)現(xiàn)了一個(gè)不錯(cuò)的xml編輯器,有語法提示功能,省了好多腦細(xì)胞。。。

            名字是Rinzo XML Editor, URL: http://editorxml.sourceforge.net/

          posted @ 2009-11-14 13:27 BlakeSu 閱讀(515) | 評(píng)論 (0)編輯 收藏

          “歷史問題”是個(gè)借口

               在為數(shù)不少得公司中,都會(huì)存在一些一看就不合理的但卻依然長久存在的問題。每每有人對(duì)此提出異議,總是被人如得了尚方寶劍般毋庸置疑的貼上“歷史問題”的標(biāo)簽,似乎這樣就可以蓋棺定論,無需再議了。
                但是任何人都知道,歷史是向前發(fā)展的。沒道理事情曾經(jīng)是這樣就要一直這樣下去。“歷史問題”的標(biāo)簽如果真那么牢不可破,人們恐怕還住在北京或云南某山洞里吧。
                 有次看電視講到,美國小朋友都寫過得一篇作文叫做“世界因我而變”,小朋友看到這個(gè)題目,都抓耳撓腮,覺得自己不能改變世界。這時(shí)老師解釋道:“今天我早起,準(zhǔn)時(shí)到達(dá)學(xué)校,給了你們一堂生動(dòng)得課,于是世界就這樣改變了”。深層一點(diǎn)講,這是向孩子們幼小的心靈里注入了一種極為積極的人生態(tài)度。改變世界不需要做什么驚天動(dòng)地的大事,只需要承擔(dān)自己的責(zé)任,改變力所能及的不合理便可。
                 客觀一點(diǎn)說,中國人是消極思維很重的,要不也不會(huì)對(duì)“歷史問題”如此推崇備至。黃老之學(xué)恐怕就是這種思想的理論根據(jù)了吧,悠久的歷史其實(shí)是一個(gè)沉重的包袱,它壓的中華民族不敢大步走路呢。。。

          posted @ 2009-11-13 00:20 BlakeSu 閱讀(156) | 評(píng)論 (0)編輯 收藏

          Linux操作系統(tǒng)終端下 用戶通訊四大手段

          對(duì)于QQ、MSN這類聊天工具,大家應(yīng)該是再熟悉不過了,那么在Unix系統(tǒng)中能否進(jìn)行此類的聊天操作呢?答案當(dāng)然是肯定的。Unix提供了多種方式讓用戶相互通信,它允許以文本的方式給某個(gè)用戶或所有用戶傳遞信息,而信息來源可以是文本文件或直接由鍵盤輸入的內(nèi)容。
          (1)使用write發(fā)送消息
          使用write命令可以向任何已登錄同一系統(tǒng)的另一位用戶發(fā)送消息,這時(shí)在對(duì)方用戶終端上就會(huì)自動(dòng)顯示出信息,而對(duì)方也同樣可以使用write 命令來回復(fù)消息,這樣雙方之間就能互相通信了。
          write命令的格式如下:
          write user-name
          此處user-name是將要與之通信的用戶名,可以使用who 命令來查看系統(tǒng)中已登陸的用戶名。輸入write命令后,即可進(jìn)入發(fā)送消息狀態(tài),這時(shí)就可以通過鍵盤輸入消息,回車即可向?qū)Ψ桨l(fā)送此條消息了。要想退出發(fā) 送消息狀態(tài),可以使用“Ctrl + d”退出write 命令回到shell。
          (2)使用talk進(jìn)行雙方對(duì)話
          talk命令允許雙方實(shí)現(xiàn)類似于MSN、QQ這樣的實(shí)時(shí)對(duì)話,其命令格式如下:
          talk user-name
          當(dāng)用戶向另一用戶發(fā)送對(duì)話請(qǐng)求,只有在對(duì)方同意接受對(duì)話請(qǐng)求,即對(duì)方也使用talk命令后,雙方的對(duì)話才會(huì)建立。這時(shí)雙方終端上都會(huì)顯示 “[connect established]”,這樣雙方就可以從鍵盤輸入文字,talk會(huì)把這些輸入顯示在對(duì)方的屏幕上,若任意一方按鍵就會(huì)退出對(duì)話狀態(tài)。
          (3)使用wall進(jìn)行廣播式消息傳送
          使用wall命令可以向所有用戶廣播通知信息,而所有登錄系統(tǒng)的用戶都可收到該消息。wall命令有以下幾種格式:
          wall
          wall filename
          wall “send a message to all the people!”
          (4)使用mesg允許或拒絕接收消息
          當(dāng)一位用戶正在全身心的投入某項(xiàng)工作的時(shí)候,可能會(huì)不想被另外一位用戶用上述方式突然發(fā)送來的消息打斷思路,那么就可使用mesg命令來設(shè)置是否允許接收由其它用戶發(fā)來的信息。
          mesg命令的格式如下:
          mesg –n

          mesg -y
          其中,y表示允許接收信息,n 表示拒絕接收信息。如果mesg后面沒有跟參數(shù),則報(bào)告當(dāng)前的許可狀態(tài)。

          posted @ 2009-11-06 08:25 BlakeSu 閱讀(193) | 評(píng)論 (0)編輯 收藏

          PL/SQL Developer使用技巧

          1、PL/SQL Developer記住登陸密碼

             在使用PL/SQL Developer時(shí),為了工作方便希望PL/SQL Developer記住登錄Oracle的用戶名和密碼;

          設(shè)置方法:PL/SQL Developer 7.1.2  ->tools->Preferences->Oracle->Logon History , “Store history”是默認(rèn)勾選的,勾上“Store with password” 即可,重新登錄在輸入一次密碼則記住了。



          2、執(zhí)行單條SQL語句

             在使用PL/SQL Developer的SQL Window時(shí),按F8鍵,PL/SQL Developer默認(rèn)是執(zhí)行該窗口的所有SQL語句,需要設(shè)置為鼠標(biāo)所在的那條SQL語句,即執(zhí)行當(dāng)前SQL語句;

          設(shè)置方法:PL/SQL Developer 7.1.2 -->tools->Preferences-->Window types ,勾上“AutoSelect Statement” 即可。



          3、格式化SQL語句

             在使用PL/SQL Developer的SQL Window時(shí),有時(shí)候輸入的SQL語句太長或太亂,希望能用比較通用的寫法格式話一下,這樣看起來會(huì)好看些,也好分析;

          使用方法:選中需要格式化的SQL語句,然后點(diǎn)擊工具欄的PL/SQL beautifier按鈕即可.



          4、查看執(zhí)行計(jì)劃

             在使用PL/SQL Developer的SQL Window時(shí),有時(shí)候輸入的SQL語句執(zhí)行的效率,分析下表結(jié)構(gòu),如何可以提高查詢的效率,可以通過查看Oracle提供的執(zhí)行計(jì)劃;

          使用方法:選中需要分析的SQL語句,然后點(diǎn)擊工具欄的Explain plan按鈕(即執(zhí)行計(jì)劃),或者直接按F5即可。

           

          5、調(diào)試存儲(chǔ)過程

             在使用PL/SQL Developer操作Oracle時(shí),有時(shí)候調(diào)用某些存儲(chǔ)過程,或者調(diào)試存儲(chǔ)過程;

          調(diào)用存儲(chǔ)過程的方法:首先,在PL/SQL Developer左邊的Browser中選擇Procedures,查找需要調(diào)用的存儲(chǔ)過程;然后,選中調(diào)試的存儲(chǔ)過程,點(diǎn)擊右鍵,選擇Test,在彈 出來的Test scrīpt窗口中,對(duì)于定義為in類型的參數(shù),需要給該參數(shù)的Value輸入值;最后點(diǎn)擊上面的條數(shù)按鈕:Start debugger 或者按F9;最后點(diǎn)擊:RUN 或者Ctrl+R

          6.左下角顯示window list
            點(diǎn)擊菜單 tools -> window list,將彈出的小窗口拖到左下角合適位置,然后點(diǎn)擊菜單 window->save layout

          7.防止登錄超時(shí)
          tools->Preferences-->Oracle->Connection  選擇 "check connection"

          8.不備份sql文件

          tools->Preferences->Files->backup,頁面中backup files中選擇 disabled

          posted @ 2009-11-04 08:43 BlakeSu 閱讀(408) | 評(píng)論 (0)編輯 收藏

          exists真的就比in的效率高嗎?

          系統(tǒng)要求進(jìn)行SQL優(yōu)化,對(duì)效率比較低的SQL進(jìn)行優(yōu)化,使其運(yùn)行效率更高,其中要求對(duì)SQL中的部分in/not in修改為exists/not exists

          修改方法如下:

          in的SQL語句

          SELECT id, category_id, htmlfile, title, convert(varchar(20),begintime,112) as pubtime
          FROM tab_oa_pub WHERE is_check=1 and
          category_id in (select id from tab_oa_pub_cate where no='1')
          order by begintime desc

          修改為exists的SQL語句
          SELECT id, category_id, htmlfile, title, convert(varchar(20),begintime,112) as pubtime
          FROM tab_oa_pub WHERE is_check=1 and
          exists (select id from tab_oa_pub_cate where tab_oa_pub.category_id=convert(int,no) and no='1')
          order by begintime desc

          分析一下exists真的就比in的效率高嗎?

               我們先討論IN和EXISTS。
               select * from t1 where x in ( select y from t2 )
               事實(shí)上可以理解為:
               select *
                 from t1, ( select distinct y from t2 ) t2
                where t1.x = t2.y;
               ——如果你有一定的SQL優(yōu)化經(jīng)驗(yàn),從這句很自然的可以想到t2絕對(duì)不能是個(gè)大表,因?yàn)樾枰獙?duì)t2進(jìn)行全表的“唯一排序”,如果t2很大這個(gè)排序的性能是 不可忍受的。但是t1可以很大,為什么呢?最通俗的理解就是因?yàn)閠1.x=t2.y可以走索引。但這并不是一個(gè)很好的解釋。試想,如果t1.x和t2.y 都有索引,我們知道索引是種有序的結(jié)構(gòu),因此t1和t2之間最佳的方案是走merge join。另外,如果t2.y上有索引,對(duì)t2的排序性能也有很大提高。
               select * from t1 where exists ( select null from t2 where y = x )
               可以理解為:
               for x in ( select * from t1 )
               loop
                  if ( exists ( select null from t2 where y = x.x )
                  then
                     OUTPUT THE RECORD!
                  end if
               end loop
               ——這個(gè)更容易理解,t1永遠(yuǎn)是個(gè)表掃描!因此t1絕對(duì)不能是個(gè)大表,而t2可以很大,因?yàn)閥=x.x可以走t2.y的索引。
               綜合以上對(duì)IN/EXISTS的討論,我們可以得出一個(gè)基本通用的結(jié)論:IN適合于外表大而內(nèi)表小的情況;EXISTS適合于外表小而內(nèi)表大的情況。

          我們要根據(jù)實(shí)際的情況做相應(yīng)的優(yōu)化,不能絕對(duì)的說誰的效率高誰的效率低,所有的事都是相對(duì)的

          not in 和not exists
          如果查詢語句使用了not in 那么內(nèi)外表都進(jìn)行全表掃描,沒有用到索引;
          而not extsts 的子查詢依然能用到表上的索引。
          所以無論那個(gè)表大,用not exists都比not in要快。

          原文:http://blog.csdn.net/jwisdom/archive/2007/09/27/1803577.aspx

          posted @ 2009-11-03 09:48 BlakeSu 閱讀(300) | 評(píng)論 (0)編輯 收藏

          死了都要try

          死了都要try!
          不catch我不痛快!
          程序毀滅throw還在!
          把每天,
          當(dāng)作是程序來更改,
          一改一天,
          累到淚水都掉下來,
          不理會(huì),
          老板是好還是壞,
          只要有工資,
          來還貸.
          改,不是需求做的太壞,
          那是sb客戶想要什么,
          自己都不明白.
          忍受現(xiàn)在,
          自己一生還不完的貸,
          很多模塊,
          不能完成,
          我還得改.
          死了都要try!
          不catch我不痛快!
          程序毀滅throw還在!


          posted @ 2009-11-03 09:36 BlakeSu 閱讀(183) | 評(píng)論 (0)編輯 收藏

          如何解決Xubuntu的應(yīng)用程序(Application)會(huì)消失的問題

          Xubuntu中只有一個(gè)選單叫做應(yīng)用程序(Application),這個(gè)選單是Xfce menu模塊,使用者只要在選單上按右鍵選擇編輯之后,有可能會(huì)造成選單消失的狀況。在Ubtw社群論壇中許多使用者都提出了這問題,暫時(shí)性解決方法如下:

           

          Xfce menu的設(shè)定檔叫作menu.xml,所有的選單內(nèi)容會(huì)存在這個(gè)檔案內(nèi),預(yù)設(shè)的使用者設(shè)定文件位置在

           

              ~/.config/xfce4/Desktop

           

          之下,使用者修改過的內(nèi)容也會(huì)存在這里。而Xubuntu內(nèi)還有一套完整的初始menu.xml跟當(dāng)?shù)鼗?/span>locale)的檔案,位置在

           

              /etc/xdg/xfce4/desktop

           

           

          將里面的menu.xml拷貝到使用者設(shè)定文件位置

           

              sudo cp /etc/xdg/xfce4/desktop/menu.xml ~/.config/xfce4/Desktop

           

          接著請(qǐng)把檔案權(quán)限修改為只能讀取不能修改,這樣不管你是不是有使用選單編輯器(menu editor)都無法影響。因?yàn)槲矣糜⑽陌嫠钥截惖氖?/span>menu.xml,如果是使用中文版的朋友應(yīng)該是要把menu.xml.zh這個(gè)檔案拷貝過去之后修改成menu.xml。怕又出問題的人(因?yàn)槲覄傉业椒椒y試了一下,亂按亂改menu editor之后都沒問題),記得備份一下你的選單檔案。

           

          --

          Update: 直接砍掉 ~/.config/xfce4/Desktop/menu.xml 也可以

          posted @ 2009-11-03 09:03 BlakeSu 閱讀(175) | 評(píng)論 (0)編輯 收藏

          web應(yīng)用導(dǎo)出大量數(shù)據(jù)的新思路

             時(shí)常碰到系統(tǒng)需要導(dǎo)出大量數(shù)據(jù)的情況。每次碰到,當(dāng)事人無不抓耳撓腮,痛苦非常。
             大量數(shù)據(jù)的在線導(dǎo)出除了耗費(fèi)大量內(nèi)存,造成服務(wù)器的沉重負(fù)擔(dān)。甚至?xí)斐捎脩羲罊C(jī),所以一直是個(gè)頭疼的問題。
              近日夜觀天象,忽見紫氣東來,猛然想到,前臺(tái)不行,就后臺(tái)做嘛。
              說道后臺(tái)任務(wù)調(diào)度,無疑會(huì)想到quartz,它的SimpleTrigger正好可以做這個(gè)事情。
             
              思路如下:

                用戶導(dǎo)出時(shí),提示用戶輸入郵件地址,然后后臺(tái)建立一個(gè)quartz任務(wù),任務(wù)中,將數(shù)據(jù)導(dǎo)出到文件中。
                任務(wù)結(jié)束時(shí),將文件的鏈接發(fā)到用戶填寫的郵箱地址中,這樣用戶就可以根據(jù)這個(gè)地址,去下載導(dǎo)出的
                文件了。

          posted @ 2009-11-02 09:15 BlakeSu 閱讀(204) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共12頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 
          主站蜘蛛池模板: 古田县| 潞西市| 文昌市| 聂拉木县| 建宁县| 东港市| 田林县| 侯马市| 义马市| 丰都县| 阿坝| 柳河县| 通山县| 鲁甸县| 洛隆县| 尉犁县| 锡林郭勒盟| 丹寨县| 湘潭县| 扶绥县| 遂平县| 巴林左旗| 澳门| 舒兰市| 大石桥市| 阿拉善左旗| 浦江县| 乳源| 洞口县| 探索| 水富县| 东辽县| 钟山县| 柯坪县| 深圳市| 青龙| 高邮市| 兴国县| 怀宁县| 周宁县| 武陟县|