軟件是對質量的不懈追求

          #

          使用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 閱讀(302) | 評論 (0)編輯 收藏

          Spring DAO 異常類

          Spring數據訪問的根異常是DataAccessException,所有的Spring的數據訪問異常都繼承DataAccessException。
          DataAccessException的nestedRuntimeException子類中,已經將所有的異常棧都進行了記錄。

          CleanupFailureDataAccessException:清除失敗異常

          DataAccessResourceFailureException:資源訪問異常

          DataIntegrityViolationException:完整性約束異常

          DataRetrievalFailureException:數據獲取異常

          DeadlockLoserDataAccessException:死鎖訪問異常

          IncorrectUpdateSemanticsDataAccessException:更新出錯異常

          InvalidDataAccessApiUsageException:無效數據訪問API使用異常

          InvalidDataAccessResourceUsageException:無效數據訪問資源使用異常

          OptimisticLockingFailureException:樂觀鎖失敗異常

          TypeMismatchDataAccessException:類型匹配失敗異常

          UncategorizedDataAccessException:其他原因異常

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

          myeclipse 確實很爛 & 好用的xml編輯器分享

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

            不過今天發現了一個不錯的xml編輯器,有語法提示功能,省了好多腦細胞。。。

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

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

          “歷史問題”是個借口

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

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

          Linux操作系統終端下 用戶通訊四大手段

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

          mesg -y
          其中,y表示允許接收信息,n 表示拒絕接收信息。如果mesg后面沒有跟參數,則報告當前的許可狀態。

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

          PL/SQL Developer使用技巧

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

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

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



          2、執行單條SQL語句

             在使用PL/SQL Developer的SQL Window時,按F8鍵,PL/SQL Developer默認是執行該窗口的所有SQL語句,需要設置為鼠標所在的那條SQL語句,即執行當前SQL語句;

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



          3、格式化SQL語句

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

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



          4、查看執行計劃

             在使用PL/SQL Developer的SQL Window時,有時候輸入的SQL語句執行的效率,分析下表結構,如何可以提高查詢的效率,可以通過查看Oracle提供的執行計劃;

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

           

          5、調試存儲過程

             在使用PL/SQL Developer操作Oracle時,有時候調用某些存儲過程,或者調試存儲過程;

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

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

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

          8.不備份sql文件

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

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

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

          系統要求進行SQL優化,對效率比較低的SQL進行優化,使其運行效率更高,其中要求對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 )
               事實上可以理解為:
               select *
                 from t1, ( select distinct y from t2 ) t2
                where t1.x = t2.y;
               ——如果你有一定的SQL優化經驗,從這句很自然的可以想到t2絕對不能是個大表,因為需要對t2進行全表的“唯一排序”,如果t2很大這個排序的性能是 不可忍受的。但是t1可以很大,為什么呢?最通俗的理解就是因為t1.x=t2.y可以走索引。但這并不是一個很好的解釋。試想,如果t1.x和t2.y 都有索引,我們知道索引是種有序的結構,因此t1和t2之間最佳的方案是走merge join。另外,如果t2.y上有索引,對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
               ——這個更容易理解,t1永遠是個表掃描!因此t1絕對不能是個大表,而t2可以很大,因為y=x.x可以走t2.y的索引。
               綜合以上對IN/EXISTS的討論,我們可以得出一個基本通用的結論:IN適合于外表大而內表小的情況;EXISTS適合于外表小而內表大的情況。

          我們要根據實際的情況做相應的優化,不能絕對的說誰的效率高誰的效率低,所有的事都是相對的

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

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

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

          死了都要try

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


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

          如何解決Xubuntu的應用程序(Application)會消失的問題

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

           

          Xfce menu的設定檔叫作menu.xml,所有的選單內容會存在這個檔案內,預設的使用者設定文件位置在

           

              ~/.config/xfce4/Desktop

           

          之下,使用者修改過的內容也會存在這里。而Xubuntu內還有一套完整的初始menu.xml跟當地化(locale)的檔案,位置在

           

              /etc/xdg/xfce4/desktop

           

           

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

           

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

           

          接著請把檔案權限修改為只能讀取不能修改,這樣不管你是不是有使用選單編輯器(menu editor)都無法影響。因為我用英文版所以拷貝的是menu.xml,如果是使用中文版的朋友應該是要把menu.xml.zh這個檔案拷貝過去之后修改成menu.xml。怕又出問題的人(因為我剛找到方法測試了一下,亂按亂改menu editor之后都沒問題),記得備份一下你的選單檔案。

           

          --

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

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

          web應用導出大量數據的新思路

             時常碰到系統需要導出大量數據的情況。每次碰到,當事人無不抓耳撓腮,痛苦非常。
             大量數據的在線導出除了耗費大量內存,造成服務器的沉重負擔。甚至會造成用戶死機,所以一直是個頭疼的問題。
              近日夜觀天象,忽見紫氣東來,猛然想到,前臺不行,就后臺做嘛。
              說道后臺任務調度,無疑會想到quartz,它的SimpleTrigger正好可以做這個事情。
             
              思路如下:

                用戶導出時,提示用戶輸入郵件地址,然后后臺建立一個quartz任務,任務中,將數據導出到文件中。
                任務結束時,將文件的鏈接發到用戶填寫的郵箱地址中,這樣用戶就可以根據這個地址,去下載導出的
                文件了。

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

          僅列出標題
          共12頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 
          主站蜘蛛池模板: 榕江县| 鄂伦春自治旗| 涞水县| 鄂州市| 大名县| 黑水县| 建平县| 驻马店市| 太仆寺旗| 永安市| 茶陵县| 黄陵县| 台江县| 黔南| 都安| 关岭| 河池市| 衢州市| 金乡县| 蚌埠市| 土默特右旗| 五台县| 水富县| 广元市| 交口县| 连山| 长岛县| 博野县| 蓬莱市| 长丰县| 韶关市| 黄大仙区| 潮安县| 房产| 淮北市| 安乡县| 惠水县| 台东县| 苍南县| 长沙县| 息烽县|