#
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.
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:其他原因異常
搞了一天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/
在為數(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è)沉重的包袱,它壓的中華民族不敢大步走路呢。。。
對(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)。
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
系統(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
死了都要try!
不catch我不痛快!
程序毀滅throw還在!
把每天,
當(dāng)作是程序來更改,
一改一天,
累到淚水都掉下來,
不理會(huì),
老板是好還是壞,
只要有工資,
來還貸.
改,不是需求做的太壞,
那是sb客戶想要什么,
自己都不明白.
忍受現(xiàn)在,
自己一生還不完的貸,
很多模塊,
不能完成,
我還得改.
死了都要try!
不catch我不痛快!
程序毀滅throw還在!
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 也可以
時(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)出的
文件了。