2006年10月17日
#
中午去學校食堂吃的飯,本來打算來個番茄牛肉面,但被告知,已經沒有了。那就來個大肉面吧。在大連的時候有吃過這種面,可是學校食堂這大肉面,簡直就是“大肥肉面”我最怕肥肉了,當時一看已經暈了一半,一吃,真是油油的,我還是強忍痛苦把它消滅掉了,肉都剩下來了。吃的不爽,又買了一根烤腸,哪成想,也是很油。我這“狗肚子,裝不了二兩豬油。”所以,回到單位,趕緊喝茶,希望可以抵抗一下。奶奶個熊的,要雞腿面好了。
兩周過去了。現在總算有些不那么緊張,可以好好的回顧一下這半個月的事情。據我后來的了解,我是公司這次招聘為數不多的幾個當天面試,當天就通知錄用的人員之一。開始的前兩天,就是給我一個他們正在開發中的項目的一個模塊,讓我看。以此來熟悉他們的開發環境和開發方式。所以,這兩天是比較輕松的,但我可不敢怠慢,我是仔細看了又看,細細的推敲每行代碼的作用和使用原因。
?
正式開始前,給我分配了一個任務,是獨立完成一個數據庫的操作的模塊。功能要求。
Oracle10g
數據庫,三張數據表(都是日文的命名字段,表名,數據。多我來說差不多是天書,好在日文和中文的繁體差不多,我就靠感覺了)界面要求,登錄驗證,成功后顯示三表連接后的數據信息,數據信息要完成分頁功能,并且分頁功能要使用
Oracle
的
SQL
語句來實現。問我多長時間能完成?我說
4
個小時(我太過自信了。忽略了很多問題。結果用了
1
天的時間才搞定。)總結一下,思路上是沒有任何問題的,因為畢竟這樣的東西我是做過的,所以心里有底,但是
Oracle10g
這個東東我沒用過,我以為
Oracle
和
SQL Server2000
使用的是相同的
SQL
語句,實驗證明根本就差好多,我使用
Top
的嵌套方式來實現分頁功能,結果在
Oracle
中,根本就運行不了。但是我就知道這下完了,使用的不一樣。趕緊找資料,發現
Oracle
中根本就沒有
Top
這個關鍵字,使用的是
rownum
的東西,分頁方式解決了,又發現語句還是執行不了。后來發現,我在一個地方多寫了一個
t
我把它當成是日文了,要知道數據庫里面的東西全是用日文定義的,尤其是數據表名稱和字段的名稱,我根本就不會寫,所以就是復制粘貼。找了好久才把它弄對,然后就是
Servlet
了,還算順利就是用錯了一個方法,也花去了很多時間。總算交工了。帶我的人,給我提出了很多缺點和不足,從界面到代碼,受益頗多。
?
過了一天后,給了我一個項目的式樣書(我總是說成:樣式書。夠外行的吧!!!)這個可就是真家伙了,雖然只是增、刪、改、查。但對我來說還是正規的東東啦,要知道,我以前做的那些都是自己定義功能和要求,所以是沒有限制和規定的。這個可就不同了,都是有規定的。有一點我忘了說:我們公司是日本獨資的公司,是日本總公司在中國的一個分公司。所以,所作項目基本都是對日的。我從進公司就是接觸日文的東西,公司有培訓教授日文,可是我沒有任何基礎,所以,無法跟上現在這個日語班的進度,所以,我要等到下個班,估計要明年了。這回,沒有問我多長時間完成。但我還是竭盡所能,利用全部的上班時間,下班我只看看書,不作任何公司的東西。這樣我才知道我的工作效率是怎樣的,一天的工作進度是多少。最終我用了
3
天的時間,實際上我用了不到
2
天半的時間就完成了,而且大體上都合格了。在我之前來的一個同事,他我和是幾乎一起完成的,但我們不同的是開始時間,據我了解,他用了將近
1
周的時間。我自己心中暗喜,當然,這也是對我能力的一個很好的體現。但我并不會因此而過早的高興,畢竟這個模塊的難易程度,我還是能夠正確認識的,這僅僅是入門級別的啦。所以,業余時間,我就認真地補足自己欠缺的地方,爭取盡快地能夠融入公司的開發隊伍。
?
公司的工作氛圍很好。我最喜歡的是,大家進公司后,都是穿拖鞋,舒服呀。估計日本人喜歡這樣吧。公司有一個經理,兩個部長,一個會計,剩下將近
30
號人都是開發,當然這其中有若干個組長,技術大拿等。我們這些新人,就還算是菜鳥吧。不過,憑我的努力,早晚會成為這里的佼佼者的。一定可以。周四的時候,公司組織會餐,送一個老員工去日本總公司,并且也為了迎接我們這些新員工。氣氛很好,很熱鬧。大家都很活潑。而且能喝的不多,這個最好。哈哈!
?
公司經常會買水果給大家吃,這兩個星期,每周都會有。不錯哦。我們是輪流值日,本月
16
號就是我的第一次值日。
?
這個周末的休息,好輕松哦。唯一的不和諧因素就是,我去游泳,我把手機給弄沒了,到現在還不知道咋沒的。我出門不到
150
米,上公交車坐
4
站,然后下車走不到
50
米進入游泳館,脫衣服,游泳,洗澡出來,穿衣服,發現手機就沒有了。而且我一直打,都是通的直道第二天還是通的。可就是不知道這小家伙在哪里,沒辦法,找不到了。只好再買一部新手機了。號碼我是補辦的,所以原來的號碼沒變。奶奶個熊的,還沒掙錢,就先花錢了。真氣人呀。。。
???????? 這是十月份的最后一天,我終于完成了程序的摸底測試,哈哈。今天給我了一個式樣書,日文的。雖然這個模塊已經是被做過的了,代碼我也看過了。但是,我還是感覺很激動。畢竟這是我的第一個正式的模塊開發,挺興奮的。我是仔細閱讀,細心分析,過癮,我就是愛做這個。
?????????今天又來了兩個新員工,也是java的。現在會議室已經被我們4個java的占領了。公司打算搬家了。擴充地方。好呀。不過我還挺喜歡會議室的。地方夠大,視野開闊呀。
???????? 我還要忙著學東西。所以不多說了。本周末有時間,是3連休。下次在解釋為何3連休。
????今天第一天,開始了我的試用期。分配了電腦,先武裝一下。明天開始我會先做些小的任務,估計主要是測試我的水平。心里還挺打鼓的呢。沒有真刀真槍的用過,心里就還是沒底。
??????
今天下午的時候,有
8
個人又來面試,都沒有通過,看來得到這工作還是不容易呀。坐了一天了,不想寫了。感覺累了。主要是剛開始上班還不適應。所以。休息睡大覺去。
????今天是很好的一天,上下午分別兩家公司面試,都很成功,我選擇了下午的那家,是一家日資企業,在沈陽的分公司,規模一般,但是我覺得工作的環境很好,主要是氣憤很好。當然這都是今天的第一感覺。先是技術部門的面試,都是專業知識,我順利通過,然后直接人事部門的人來,所我可以直接通過,不需要等通知了。直接就開始談待遇相關內容,待遇在沈陽這個地區來說,就算是普通的,但是公司的后續培養是我最為看重的,公司出費用提供日語的學習,并且每年都回往日本輸送員工,經我詳細了解后,才明白,這家公司是日本總公司,在沈陽的分公司,在這工作
2
年后,如果技術過關,基本上都會推薦到日本總公司工作,當然,這都是他們的異己說法,但憑我的經驗來看,這些都是事實,并且空談。對我這樣一個“新人”來說,學習和深造,這才是我想要的,有豐厚的閱歷和自立,才能讓我的職業生涯走的更遠,也許對些“老人”來說,我這是天真的想法,但此時的我,就是想在技術海洋里游來游去,我喜歡,所以,我并不把它當成是工作,我很享受此中的過程。明天就是開始試用期,那里都要穿拖鞋,像是日本的榻榻米那樣的東西,感覺挺有意思的。嘿嘿!我要上班了哦。挺興奮的,我會努力,縮短我的試用期,加油加油!
??? 今天的天氣,沒的說。風蕭蕭兮、雨瀟瀟,壯士穿在多希、也感覺冷呀!這東北的天氣,說變,那就是一個快。今天參加了我的一個好友的婚禮,是我從小玩到大的朋友,鐵成兄。雖然成年后,就不常聯絡了,但是關系還在,畢竟我們的父輩也是從小玩到大的。早上起來就有些小雨,昨晚下了一夜。還好在舉行婚禮的時候,老天還算給面子,只有風,沒有雨。我參與了責任重大的放鞭炮儀式,哈哈。嚇死我了,鞭炮聲音好大。我怕被蹦到呀。酒席還算不錯,人好多哦。結婚都是這樣啦。如果我有機會結婚,不知道是不是也這樣,有夠煩的。下午,我就和我老媽去他媽家看家,我是又困又冷,晚上
5
點多才回自己家,路上那風叫一個大,冷得要你命。不過我還是抗住了。現在感覺還有些哆嗦。我討厭天冷,因為我怕冷;我喜歡夏天,因為夏天熱。這好像是廢話哦!
??????
下午
3
點多,接到一個公司的面試通知,明天
9
:
30
信息中心大廈
7
樓,啥公司我沒記住名,暈!到了打電話。我就現在看看資料吧,也算作寫準備。希望好運多多來,冷空氣快走開。哈哈哈!太冷了,不寫了,趕緊鉆進我的暖窩窩!所有室內的溫度在
18
攝氏度上的兄弟們,你們是幸福我,我看了一下溫度計,數值時
15
度,現在還不到采暖期,所以沒有暖氣,奶奶個熊的。凍死我了。
又一次的面試經歷。今天的地點是遼寧工業展覽館,入場票
10
元。我準備了
5
份簡歷,但只投出了
4
份,招聘單位很多,但是專業相關的好少。我就想找個
java
編碼的,可能聽起來挺沒出息的吧。雖然一直都在從事開發工作,但從來都沒有到正式的軟件公司的開發經歷,所以,總是感覺有所欠缺。自己到底有多大的能力,都沒有機會展示,也不知道,自己的技術特長是否符合用人單位的要求,所以,有種力不知道應該往哪個方向使的感覺。為此,我特意自己用自己賺來的剩余收入,投資到了學習中,經歷了歷史
1
年知道現在馬上結業在即的
IT
軟件工程師的培訓,聽起來挺胡人的啊!軟件工程師,其實我很知道那僅僅是個代名詞,實際的能力如何,那要看你自己的學習和應用情況,培訓中心教的的確算是不錯,但是對我這種對技術有些龜毛的人,只要我學會了,我就是覺得他們教得少、淺、慢。所以,就是不知足呀!這個一定的啦。花錢,那是要有成效的嗎,錢不能白花,血不能白流。
?????? Java
相關的面試內容,我已經基本上沒什么問題了。都能正確回答大部分的問題,并且自我感覺還不錯。
Struts
也對自己完全有信心。可是每每到數據庫的
SQL
語句,我總是卡殼,那些我常用的檢索組合方式,和一些關鍵字的寫法,我總是記不住,在實際開發總,這些問題,總是可以解決,但是面試的時候,是不能查資料的。所以,只能把自己的思路表示清除,人家也都說,“看來你的確會,但是寫不完整,那就說明還是不夠熟練。”如果因為這個不能找到合適的工作,那我也太憋屈了吧。所以,本人決定。現在開始,多寫
SQL
語句,練習不使用幫助文檔,所有的關鍵字都被下來。這樣下次就一定沒問題了。我總覺得,只要會用,并且知道哪里可以找到幫助你解決問題的方法,那就不需要去硬被那些比較耗時的東西,其實這本身是正確的,就像那句名言“借力使力,不費力!”的道理是一樣的。可是現在看來,這個偷懶的事情,在我還沒有得到一份工作前,還是不要了。還是實實在在的被吧。誰叫是你應聘,不是招聘呢。“不能改變,那就適應吧。”這好像也是一句名言。哈哈。我也不知道,我拿來的那么多“名言”。有機會得總結一個《小白明言語錄》
昨夜睡覺前我沒做什么,就是看了看文字材料。所以睡眠就很平穩。夢境的場景和多數時候一樣,是有兩個洗手間的房子,其中一個洗手間有兩個坐便,這是我自己一直不是很理解的地方,兩個坐便,挺奇怪的,可能是某種預示吧!但是我還沒有參透之中的奧秘。看到我日記的朋友,你們大可試驗一下,睡覺時把雙手重疊放到胸前,和丹田兩個不同的位置。解釋:丹田就是肚臍以下
2
指的地方。注意:男生要左手在下,右手在上;女生則相反。如果做錯了,我可不知道后果是什么哦。沒試驗過,如有人試驗請把結果告訴我,增加我的夢境知識。還有就是不要太刻意去控制你的思維,否則可能會失眠哦。
J2EE
的課程,今天是最后一天,老師講的東西不多。同學們提問也很少,我當然是不能放過老師啦。那一定是有問就問,毫不保留呀。
北方這個季節就是,購買秋菜的時候了。大白菜那是必不可少的,
20
顆白菜,兩次我就把它們搞到
7
樓了。我的身體素質還是可以的。來流過言的朋友說我游泳
2000
米神人,其實那沒什么啦。很多人都做得到,再加上的底子也還是不錯的。在這里介紹一個吧。我從上小學,初中,高中,大學都分別是校或院的運動隊隊員,我的專項是
100
米,
200
米。
100
米最擅長,最好成績是
12.05
這個成績是我在參加市里比賽的成績,最為一個非專業運動員已經是很不錯的啦。小學
2
年級曾被招進市體校,可是感覺太辛苦沒有堅持,因為我還是比較崇拜有知識的人,希望將來用自己的知識來賺錢。但是好的運動喜歡還是一直保持下來的,但是運動量還是少了很多的,所以想當初的
6
塊腹肌現在已經變成
1
塊了。哈哈。不過還好堅持不斷的
1
年游泳,讓我的身體有了很好的恢復,各部位的脂肪也已經在漸漸的消減,心肺功能也感覺越來越好。尤其是胸肌恢復最明顯。但是腰的靈活性大不如前,以前最擅長的必殺技“回旋踢”已經是基本有形無力了。看來還要繼續加油呀。說說又跑題了,哦。還有就是我現在是從事計算機軟件開發的學習階段,馬上就要再次進入工作期了。好期待呀。明天在工業展覽館會有一個大型的招聘活動,已經約好了班里的幾個同學,一同去看看。希望有好的境遇。
今天的晚餐,老爸請客。吃的“千里香”感覺不錯,小肚飽飽,但是不是很飽,要控制飲食這個很重要。還喝了一瓶啤酒,感覺有些小暈,我是比較不能喝啦。我酒精過敏,但是還是比較愛喝的,在高興的時候,可以多喝兩杯的。上次喝的比較痛快是
3
男
1
女,其中
1
男僅喝
1
瓶,我喝了
4.5
瓶,那兩個神仙一人
5
瓶,大家都沒咋地。估計有些高,我和那女孩的愣是走了將近
2
個小時才到家。鄭重說明:那女孩是我同學,小我
7
歲,是我小妹妹啦。各位看官可別誤會哦。我可是很有風度的那中,不會趁人之危哦。我是風流,但不下流。哈哈。其實那女孩比我能喝多了,我根本沒法比。
誰個好覺,明天好運都來吧!
夜里的夢境,再次證明了睡覺時,雙手疊掌放到胸前,會做比較兇險的夢,或是噩夢。夢境是這樣的,時間大概是春節期間,地點好像是我的一個長輩的家附近,主要事件是由于消費時被無理羞辱,我一氣之下殺掉了兩個人,過程很像是武俠片的場景,就連飛鏢暗器都用上了,我記得那二人也非等閑之輩,而且還是惡貫滿盈。但是畢竟我還是殺人了,場景一下子變了,比較離譜,是我在培訓中心的學習教室,同學都在,課間走人幾個警察,找了些人進行盤問,我知道已經被盯上了,同學和老師都替我開拓,說那二人死了活該,可是我還是很忐忑不安,心想,應該算是過失殺人或者是防衛過當吧!此時想起了,我的父親母親,內心便開始痛哭流涕了,注意,是內心!然后天就亮了,夢境結束。感覺胸口有些痛,手掌壓的。
雖說是夢境,可是感覺是十分真實,心確實很痛、很憋。
夢境是潛意識的一種表達方式,我一點我是深信不疑的,說日有所思,夜有所夢,這個我不完全贊同,我做過試驗,就是在入睡前從事不同的事情,對你當晚的夢境是很有影響的,我有印象的有:看恐怖片,夢里一定是怪獸成群,自己想跑也跑不動,我估計這個現象很普遍;做些力量性運動,夜里會睡得比較死,不會有什么夢,有夢也是參加比賽什么的,我在學生時代的賽場場景就會在這時閃現,并且總是在百米的起跑線上,感覺和現實一樣,耳邊只能聽到自己的呼吸,繃緊腿部肌肉,重心前移,做著條件反射般的完美起跑;如果是聽些音樂然后入睡,夢境都會比較美好,美好到有時候感動到哭泣。
我聽說過《周公解夢》但是我從來沒看,我怕看了以后會影響自己的潛意識。所以,我還是要用自己的方式來破解自己的夢境,有人說,夢境會有些對未來的預示,這個我覺得是沒啥根據的,你平時做事的態度和方法,你掌握的知識和技能,還有你的性格,這些才是對未來有價值的預示,所謂謀事在人,成事在天,就是這個道理啦。我哥們小浩說過這樣句“一命,二運,三造化”我覺得甚是有理呀。我不相信命運,但是我確承認它的存在,聽起來好像有些矛盾!
夢也做過了,該開始今天的學習了,計劃是早就制定好的,把
Struts
的
Bean
標簽全部搞定,下午搞定
Logic
標簽。現在是下午
2:34
我已經基本完成任務,還差一小部分而已。每周
1
、
5
的全天上課,周
2
,
6
的下午游泳,這樣的規律性生活已經快
1
年了。我的潛心修煉也即將結束了。北方的天氣開始變涼了,所謂秋風掃落葉,就是現在這個場景啦。
?
題外話:我把自己的日志在這里先發布,然后再發布到我自己的博客上可以嗎?我不透露我博客的地址,這樣算違反版規不,目前,我還沒有放到自己的博客上,所以,想得到具體回應同意后,我在弄。謝謝哦!
早起先把昨天修改的程序發了過去,運行檢查,沒啥問題。小強說他們的電腦有病毒,總是有問題,也沒說啥問題,問我是否要重新裝系統,最好不要吧,那樣的話,
SQL Server
和
.NET Framework
都要重新裝,估計他們裝不好,豈不是我又要到長春一趟,我的天,命苦呀。他說找人給看看,最好還是殺毒吧。我還是那句老話,“有病治病,用不著打死,重生吧!”此時聽到敲門聲,說是電話局的,說什么推出新政策,可以省話費什么的,存屬扯蛋,這種騙人的把戲電視上都演過多少次了,還有人使用。當我白癡呀。我沒理,那人便敲鄰居的門,誰也不搭理他,未果,就離開了。現在這世道,可不能隨便開門,壞人太多啦!也經常接到這樣的電話,說你中
50
萬,先匯點手續費什么的。奶奶個熊的,就是騙呀。我媽最逗,也不廢話,直接回應:“中了,我不要了,都給你了。”電話一撂,拉到。只要不貪心,永遠不會上當的。
昨天去三好街了,所以正常的周二下午游泳,推遲到了今天。天氣涼了,泳池人少多了。我喜歡,這樣可以圍著整個泳池游,比較爽。今天狀態不錯,
2
小節,沒節
6
圈,總長
1200
米只多不少,而且還游了好幾個來回的
22
米往返。估計今天的總長度會在
2000
米上下。每周兩次的游泳,對身體幫助很大,而且放松緊張的身體和心靈。我比較相信水里有種能量是可以被人體吸收的,所以每次過后倍感舒爽。回來的路上看到有家福利彩票的投注站,進去瞄了幾眼,打算玩玩,可是不懂規則,上網查查。打算自己做個統計的程序來投注,也就是隨機數字啦。就當熟練一下隨機數方法了。話不多說,現在就開始動手。
好友小楠要買塊硬盤,叫我幫忙看看,我也是了解不多呀。到了電子市場,就開始狂暈了,先是太長時間不來,哪里都不認識,問了幾家的價格,心也沒底怕被蒙,所以還是打電話找朋友幫忙吧。那可真是笑話百出了。先是問要什么牌子的,小楠說西捷酷魚的,要
200GB
的,我一緊張,說成了
20GB
,哥們頓時語塞,又問一遍,你要多大的?才回過神,哈
200GB
。問我要啥口的。說是串口還是并口。我汗,我就知道有
IDE
和
SCSI
之分,每聽說還有啥口的。沒整明白,然后問啥主板的,小楠更逗,她自己也不知道,朋友說,你干脆拿來我給你看看,連著直接買個安上就得了。我和小楠都笑了,是苦笑。因為小楠周末就要回澳大利亞,她那電腦在澳大利亞呢,咋拿來呀。又問,那
CPU
是多少呀。得支持硬盤容量呀!對哦。我咋把這個忘了。小楠繼續語出驚人,還是不知道,得沒轍了。你啥時候買的。
2000
年,這個倒是知道,那年代
40G
硬盤有沒有我都不知道,還要買
200G
的安上,那不是扯呢嗎。朋友說,實在不行買個
80G
的吧,然后刷一下
BIOS
也可以支持,她就更蒙了,連自己電腦啥配置的人都不知道,你居然要讓她自己刷
BIOS
,這可能嗎?最后,她說出了一句:我想買個硬盤的拖盒來用,這樣不就可以匹配了。我馬上問:你是要做移動硬盤呀。。。她說不是,就是把硬盤放到機箱外面用,用
USB
連接不是可以。我心想,那你電腦也得有自己的硬盤呀。她居然認為。電腦本身可以不用,用外接
USB
硬盤也可以。我的天,這都咋想的。我都解釋不清了。最后達成一致,啥也買了,回澳洲再買個二手的用著吧。她原來那個就剩顯示器和機箱(沒有硬盤)。我看留著意義也不大,我說賣廢品算了,她說
,
那里根本就沒有收的。我說那就賣廢鐵,她說,只有汽車才算是賣廢鐵。我的媽呀。那就改成燒烤用的爐子算了。回家路上,我還郁悶中,我一學計算機專業的,這硬件我是太不了解了。不過還行,至少比小楠同志了解的多呀。
下午回到家中,本來想看看
Struts
中幾個標簽的功能。結果。電話來了。我給一家公司做的程序,他們運行說有問題,叫我給看看。上網把數據發了過來,我一看,數據錄入的有夠亂的。好半天屢出頭緒。晚飯前搞定,明天給發過去。我一想,他們輸入的亂,說明我設計的還是不夠人性化,所以,又改動了一些地方。哎。畢竟是受人家錢的。工作就要負責嘛!
Hibernate
英文的直意是冬眠的意思。
Hibernate
是一個面向
Java
環境的對象
/
關系數據映射工具,注意,這是一種技術工具。
ORM
(
object relational mapping
)
這個術語表示一種技術,用來把對象模型表示的對象映射到基于
SQL
的關系模型數據結構中去。
以上的這些概念性的東西,然我感覺和
.NET Framework 2.0
中的強類型數據集的作用差不多,但聽研究過的人說,要比
Microsoft
的那個好得多,
Microsoft
的強類型數據集我用過,感覺爽,既然有說
Hibernate
更好,那已經更是過癮,我心里癢癢的呀。繼續。。。
書中有這樣一句“對于以數據為中心的程序來說,他們往往只在數據庫中使用存儲過程來實現商業邏輯,
Hibernate
可能不是最好的解決方案。”這個是一定啦,
Hibernate
是橋梁,又不是萬金油,當然是在數據庫中直接用存儲過程處理商業邏輯是最好的啦。我做過,直接在存儲過程中搞定一切東西,傳一個參數過去,然后所有的運算都在
SQL Server 2000
的存儲過程中完成,那叫一個爽,比把數據讀到程序里,然后用
Java
處理,再把數據傳回去要快得多,但是在
SQL Server 2000
里直接用存儲過程來完成這樣的工作,難度還是不小的,調試就是最大的難點,反正我是沒整明白有啥辦法可以調試的,我就用最原始、最保靠,據說是也是有效的調試方法
print
來完成。哈哈。夠暈的吧!繼續看。。。
現在看到了一個“持久化實體類”這個類是符合
JavaBean
的編寫要求。并且要給它一個唯一的標識符,這是為了我們使用
Hibernate
提供的所有特性。大多數程序,特別是
web
程序,都需要通過標識符來區分對象。但,通常我們不會直接操作對象的標識符,所以他的
setter
方法的訪問級別是
private
。
Hibernate
需要知道怎樣去加載(
load
)和存儲(
store
)持久化類的對象,映射文件,它就是告訴
Hibernate
,應該訪問數據庫里面的哪個表,已經應該使用表里面哪些字段。
Hibernate
不會從
web
加載
DTD
文件,但它會首先在應用程序的
classpath
中查找。
DTD
文件包含在
hibernate3.jar
里,同時在
Hibernate
發布包的
src/
目錄下。
映射文件的長相:
Event.hbm.xml
<hibernate-mapping>
???? <classname="events.Event" table="Events">
??????????? <idname="id" column="eventID">
?????????????????? <generatorclass="native"/>
??????????? </id>
??????????? <propertyname="date" type="timestamp" column="eventDate"/>
??????????? <propertyname="title" column="eventTitle"/>
???? </class>
</hibernate-mapping>
?
說明:
class
表示持久化類;
id
表示唯一標識;
property
表示類的屬性字段;
name
是持久化類名;
table
是數據表名;
column
是數據字段名;
generator
是唯一標識的生成方式;
type
是映射的數據類型。
?
Hibernate
配置文件的長相:
hibernate.cfg.xml
<!-- by MyEclipse Hibernate tool integration. -->
<hibernate-configuration>
??? <session-factory>
??????? <!-- properties -->
??????? <propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
??????? <propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:test</property>
??????? <propertyname="connection.username">system</property>
???????????
?<propertyname="connection.password">manager</property>
????????????????????????????????????????????????????????????????????
??????? <propertyname="dialect">net.sf.hibernate.dialect.OracleDialect</property>
???????
????????????????????????????????????????????
?????????????????
??????? <!-- mapping files -->
??????? <mappingresource="events/Event.hbm.xml"/>
??
?</session-factory>
</hibernate-configuration>
?
說明:
Session-factory
:特定數據庫全局工廠
connection.driver_class
:驅動類
connection.url
:連接路徑
connection.username
:用戶名
connection.password
:用戶密碼
mapping resource
:持久化類加入映射文件
?
用
ant
創建
build.xml
我理解他就是管理文件位置的,就是拷貝,為編譯運行做準備。
?
SessionFactory
是一個線程安全的全局對象,只需要被實例化一次,一個
Session
代表一個單線程的單元操作。
?
這時又來了一個輔助類
HibernateUtil
,負責啟動
Hibernate
和更好的操作
SessionFactory
。
最后配置一個日志系統,
Log4j
或
JDK 1.4
都可以選擇。
?
看到了一種編程模型:線程綁定(
thread-bound
)
Session
在第一次被使用,或第一次調用
getCurrentSession()
的時候,其生命周期就開始了,然后它被
Hibernate
綁定到當前線程。當事務運行結束的時候,不管是提交、回滾,
Hibernate
都會把
Session
從當前線程剝離,并且關閉它。
提交頁面:
<
html:link
href
=
"/StrutsTagDemo/parameter_2.jsp?coolID=1127"
>
???
不使用表單提交數據
</
html:link
>
?
接收頁面:
<
bean:parameter
id
=
"coolID"
name
=
"coolID"
/>
我接受到的
coolID
:
<
bean:write
name
=
"coolID"
/>
<
bean:header
id
=
"host"
name
=
"Host"
/>
主機地址
/
端口
:
<
bean:write
name
=
"host"
/>
<
br
>
<
bean:header
id
=
"language"
name
=
"Accept-Language"
/>
支持語言
:
<
bean:write
name
=
"language"
/>
<
br
>
<
bean:header
id
=
"agent"
name
=
"User-Agent"
/>
用戶的瀏覽器類型
:
<
bean:write
name
=
"agent"
/>
<
br
>
<
bean:header
id
=
"accept"
name
=
"Accept"
/>
支持打開類型
:
<
bean:write
name
=
"accept"
/>
<
br
>
<
bean:header
id
=
"encoding"
name
=
"Accept-Encoding"
/>
支持編碼格式
:
<
bean:write
name
=
"encoding"
/>
<
br
>
//
在
Session
中存放計數器,體現刷新效果。
int
count = 0;
Object obj = request.getSession().getAttribute(
"count"
);
if
(obj ==
null
) {
??? count = 1;
}
try
{
??? count = 1 + Integer.parseInt(obj.toString());
}
catch
(Exception e) {}
request.getSession().setAttribute(
"count"
, count);
?
//
設置自動刷新,一秒鐘一次。
//response.setHeader("Refresh", "1");
?
//
設置自動跳轉,一秒鐘一次。我寫的
url
是自己,所以和刷新一樣。
response.setHeader(
"Refresh"
,
"1,URL=refresh.do"
);
讀取
Cookie
集合,遍歷集合找到所需的
Cookie
,如果找到保存進
Session
,否則跳轉到登錄頁面;
所需資源:
ReadCookieAction.java-
讀取
Cookie
集合,如果找到對應
Cookie
,寫入
Session
;
Login.jsp-
登錄用頁面;
LoginSubmit.java-
記錄登錄信息,并寫入
Session
;
LoginOk.jsp-
讀取
Session
,并顯示。
讀
Cookie
的方法
:
Cookie[] cookies = request.getCookies();
if
(cookies !=
null
) {
???
for
(
int
i=0; i<cookies.
length
; i++) {
?????? Cookie cookie = cookies[i];
??????
if
(cookie.getName().equals(
"userInfo"
)) {
?????????? String value = cookie.getValue();
?????????? String[] info = value.split(
"_"
);
?????????? UserForm userForm =
new
UserForm();
?????????? userForm.setUserName(info[0]);
?????????? userForm.setUserPassword(info[1]);
?????????? request.getSession().setAttribute(
"userForm"
, userForm);
??????????
return
mapping.findForward(
"ok"
);
?????? }
??? }
}
寫
Cookie
的方法:
Cookie c =
new
Cookie(
"userInfo"
,userForm.getUserName()+
"_"
+userForm.getUserPassword());
c.setComment(
"A test cookie"
);
c.setMaxAge(120);
response.addCookie(c);
多選方框,選定值后提交,然后接收到一個數組,這是小菜,看書都知道。
可是,我想給這些多選方框動態顯示的時候給個選中或未選中的狀態值,我是看了好幾個文字材料,寫得都夠暈的,看是那么回事,實際操作,根本就不靈。還好我夠靈光,憑直覺,終于解決。
Action
中:
??????
//
定義一組備選愛好
[
也可以從數據庫中讀取
]
??????
ArrayList hobbyList =
new
ArrayList();
?????? hobbyList.add(
"
游泳
"
);
?????? hobbyList.add(
"
潛水
"
);
?????? hobbyList.add(
"
登山
"
);
?????? hobbyList.add(
"
跳傘
"
);
?????? hobbyList.add(
"
徒步旅行
"
);
??????
??????
//
定義一組選定的愛好
[
也可以從數據庫中讀取
]
??????
ArrayList hobbySelectList =
new
ArrayList();
?????? hobbySelectList.add(
"
游泳
"
);
?????? hobbySelectList.add(
"
登山
"
);
?????? hobbySelectList.add(
"
徒步旅行
"
);
??????
??????
//
定義字符串數組,如果你的那個類的屬性是數組類型。
?????? String[] hobby =
new
String[hobbySelectList.size()];
??????
//
把
ArrayList
轉換為
String[]
?????? hobbySelectList.toArray(hobby);
??????
??????
//
定義你的那個
ActionForm
?????? PersonForm personForm =
new
PersonForm();
??????
//
設置那個數組類型的屬性
?????? personForm.setHobby(hobby);
??????
??????
//
注意,你給
JSP
傳遞的東西哦!
??????
//
一個是:備選數組
ArrayList
??????
//
另一個是:
JSP
可承載的
ActionForm
,注意這個
ActionForm
要有被選定的數組屬性值哦!
?????? request.setAttribute(
"hobbyList"
, hobbyList);
?????? request.setAttribute(
"personForm"
, personForm);?
??????
??????
return
mapping.findForward(
"ready"
);
JSP
中:
<
logic:iterate
id
=
"hobbyName"
name
=
"hobbyList"
>
?????
???
???
<
html:multibox
property
=
"hobby"
>
???
???????
<
bean:write
name
=
"hobbyName"
/>
???
???
</
html:multibox
>
???
???
<
bean:write
name
=
"hobbyName"
/>
???
</
logic:iterate
>
解釋一下
jsp
中的參數。
hobbyList
就是那個一組備選愛好數組;
hobbyName
就是隨意定義的一個變量名,來接收
hobbyList
中的項;
hobby
就是
ActionForm
的那個數組屬性名稱;
?
看了這些,我自己都暈。。。這東西看來要自己領悟了!!!
我估計那個
html:radio
也是這么用,下次再研究。
有些存儲在數據庫或者某些文件的信息,可能會包含一些
html
標記的限定。例如把某句話加粗等。但是簡單的使用
<bean:write name=”” />
會把那些
html
標記給安全的轉換,但這不是我想要的。怎么解決,發現了
filter
這個屬性。應用如下:
在
Action
中我寫入這樣對象:
String html_1 = "<b>Hello</b>";
String html_2 = "<b>Hello</b>";
在
Jsp
中我這樣使用:
<bean:write name="html_1" filter="true"/>
<bean:write name="html_2" filter="false"/>
運行的效果:
<b>Hello</b>
Hello