隨筆 - 18  文章 - 0  trackbacks - 0
          <2010年3月>
          28123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          首先引包:
              import jxl.Workbook;
          代碼示例:
              jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File("C:/Documents and Settings/Administrator/桌面/department.xls"));   
              jxl.Sheet rs = rwb.getSheet("部門信息"); //sheet名稱,也可以getSheet(0)方法取得sheet  
              String sheetContext = rs.getCell(1, 0).getContents();
              ServletActionContext.getRequest().setAttribute("sheetName", sheetContext);

          具體操作見:
              http://philos.javaeye.com/blog/90802
          posted @ 2010-03-09 11:22 lucas_y 閱讀(154) | 評論 (0)編輯 收藏
          hibenate的面試總結.
          可能現在大家常常還會遇到一個些面試的時候問一些關于hibernate的問題,我個人覺得,這些東西一般做過開發的人在使用上沒有任何的問題的,但是如果是要你來說就不一定能夠說好的,下面是從goole上找的一些常見的面試。
          1.Hibernate session接口的get和load方法有何異同?
          答: get不到實體對象時會返回null,load會拋出異常
            - get會立即加載實體對象,load默認是延遲加載
            - get會忽略二級緩存(這個沒有試驗過),load則是一級和二級緩存都使用

          2.在持久化層,對象分為哪些狀態?分別列出來.
          答:瞬時態(Transient)、持久態(Persistent)、脫管態(Detached)。
          瞬時態(Transient)
          是對象是創建時,瞬時對象在內存孤立存在,它是攜帶信息的載體,不和數據庫的數據有任何關聯關系,在Hibernate中,可通過session的save()或 saveOrUpdate()方法將瞬時對象與數據庫相關聯,并將數據對應的插入數據庫中,此時該瞬時對象轉變成持久化對象。
          持久態(Persistent)
          是該對象在數據庫中已有對應的記錄,并擁有一個持久化標識,如果是用hibernate的delete()方法,對應的持久對象就變成瞬時對象,因數據庫中的對應數據已被刪除,該對象不再與數據庫的記錄關聯。
              當一個session執行close()或clear()、evict()之后,持久對象變成脫管對象,此時持久對象會變成脫管對象,此時該對象雖然具有數據庫識別值,但它已不在hibernate持久層的管理之下。
            持久對象具有如下特點:
               1. 和session實例關聯;
               2. 在數據庫中有與之關聯的記錄。
          脫管態(Detached)
          當與某持久對象關聯的session被關閉后,該持久對象轉變為脫管對象。當脫管對象被重新關聯到session上時,并再次轉變成持久對象。
                 脫管對象擁有數據庫的識別值,可通過update()、saveOrUpdate()等方法,轉變成持久對象。
                 脫管對象具有如下特點:
            1.本質上與瞬時對象相同,在沒有任何變量引用它時,JVM會在適當的時候將它回收;
          2. 比瞬時對象多了一個數據庫記錄標識值。

          3.lock和update區別
          答: update是把一個已經更改過的脫管狀態的對象變成持久狀態
          lock是把一個沒有更改過的脫管狀態的對象變成持久狀態(針對的是因Session的關閉 而處于脫管狀態的po對象(2),不能針對因delete而處于脫管狀態的po對象)
          對應更改一個記錄的內容,兩個的操作不同:
          update的操作步驟是:
          (1)屬性改動后的脫管的對象的修改->調用update
          lock的操作步驟是:
          (2)調用lock把未修改的對象從脫管狀態變成持久狀態-->更改持久狀態的對象的內容-->等待flush或者手動flush

          4.save 和update區別
          答: save是把一個對象做為一個新的數據保存, update則是把一個脫管狀態的對象或自由態對象(一定要和一個記錄對應)更新到數據庫,其實一個是保存一個是更新,一看都知道是有什么區別了。

          5.update 和saveOrUpdate區別
          答:這個是比較好理解的,顧名思義,saveOrUpdate基本上就是合成了save和update,而update只是update;引用hibernate reference中的一段話來解釋他們的使用場合和區別
          通常下面的場景會使用update()或saveOrUpdate():
          程序在第一個session中加載對象,接著把session關閉
          該對象被傳遞到表現層
          對象發生了一些改動
          該對象被返回到業務邏輯層最終到持久層
          程序創建第二session調用第二個session的update()方法持久這些改動
          saveOrUpdate(po)做下面的事:
          如果該po對象已經在本session中持久化了,在本session中執行saveOrUpdate不做任何事
          如果savaOrUpdate(新po)與另一個與本session關聯的po對象擁有相同的持久化標識(identifier),拋出一個異常
          org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [org.itfuture.www.po.Xtyhb#5]
          saveOrUpdate如果對象沒有持久化標識(identifier)屬性,對其調用save() ,否則update() 這個對象     

          6.flush和update區別
          答:這兩個的區別好理解update操作的是在自由態或脫管狀態(因session的關閉而處于脫管狀態)的對象//updateSQL
          而flush是操作的在持久狀態的對象。
          默認情況下,一個持久狀態的對象的改動(包含set容器)是不需要update的,只要你更改了對象的值,等待hibernate flush就自動更新或保存到數據庫了。hibernate flush發生在以下幾種情況中:
          1, 調用某些查詢的和手動flush(),session的關閉、SessionFactory關閉結合
          get()一個對象,把對象的屬性進行改變,把資源關閉。
          2,transaction commit的時候(包含了flush)
          posted @ 2010-03-08 16:14 lucas_y 閱讀(207) | 評論 (0)編輯 收藏
                  1、Web Services. 優先支持編寫 XML web service 客戶端程序。你可以用過簡單的annotaion將你的API發布成.NET交互的web services. Mustang 添加了新的解析和 XML 在 Java object-mapping APIs中, 之前只在Java EE平臺實現或者Java Web Services Pack中提供. 
           

            2、Scripting. 現在你可以在Java源代碼中混入JavaScript了,這對開發原型很有有用,你也可以插入自己的腳本引擎。  

            3、Database. Mustang 將聯合綁定 Java DB (Apache Derby). JDBC 4.0 增加了許多特性例如支持XML作為SQL數據類型,更好的集成Binary Large OBjects (BLOBs) 和 Character Large OBjects (CLOBs) . 

            4、More Desktop APIs. GUI 開發者可以有更多的技巧來使用 SwingWorker utility ,以幫助GUI應用中的多線程。, JTable 分類和過濾,以及添加splash閃屏。 

            5、Monitoring and Management. Mustang 添加更多的診斷信息,綁定了不是很知名的 memory-heap 分析工具Jhat 來查看內核導出。 

            6、Compiler Access.  compiler API提供編程訪問javac,可以實現進程內編譯,動態產生Java代碼。  

            7、Pluggable Annotation. Java tool和framework 提供商可以定義自己的 annotations ,并且內核支持自定義annotation的插件和執行處理器  

            8、Desktop Deployment. Swing擁有更好的 look-and-feel , LCD 文本呈現, 整體GUI性能的提升。Java應用程序可以和本地平臺更好的集成,例如訪問平臺的系統托盤和開始菜單。Mustang將Java插件技術和Java Web Start引擎統一了起來。 

            9、Security. XML-數字簽名(XML-DSIG) APIs 用于創建和操縱數字簽名); 新的方法來訪問本地平臺的安全服務,例如本地Microsoft Windows for secure authentication and communicationnative 的Public Key Infrastructure (PKI) 和 cryptographic services, Java Generic Security Services (Java GSS) 和 Kerberos services for authentication, 以及訪問 LDAP servers 來認證用戶. 

            10、The -ilities: 質量,兼容性,穩定性。 80,000 test cases 和數百萬行測試代碼(只是測試活動中的一個方面). Mustang 的快照發布已經被下載15個月了,每一步中的Bug都被修復了,表現比J2SE 5還要好。
          posted @ 2010-03-05 16:34 lucas_y 閱讀(166) | 評論 (0)編輯 收藏

          原文地址:http://sjtu.blog.sohu.com/108202346.html

           

          ------------------------------------------軟開開發篇-------------------------
          -------------------------- 
           
               在我剛進軟開的時候,我想,這有什么啊,泡著茶寫點兒JAVA的日子么?最多用JAVA查
          個數據庫,插個數據庫,還有啥?取錢存錢不也就是個人帳戶數據的此消彼長么?IDE會幫你
          發現任何一個細小的失誤,而JAVA的簡單語法也不會讓你擔心有什么疑難雜癥.我不知道
          跟我想法法一致的人有多少,但這確實就是我剛開始看軟開的眼光,安逸,掙閑錢的地方.
           
               然則,就類似于能量守恒的定理,你做的東西少,一定是有人幫你做的東西多,JAVA是
          簡單,可是那是JVM做的東西多,就如銀行,銀行的系統之復雜,是任何一個人無法想象的,
          然而它的真正目的不是像IBM一樣要向別人出賣技術,所以對人才要求很高,它只是要使成
          熟的技術造福于自己特色業務的推廣,造福于針對業務的系統的開發,說白了,是靠業務的
          走紅而不是技術的復雜來掙錢,.JAVA雖簡單,但是要想徹頭徹尾學明白也難,那么銀行軟
          開不允許這種復雜性存在,它簡單,但不徹底,那么我們就要讓它變得徹底的簡單,我們要
          繼續開發自己的系統,提供一套很容易的開發平臺,當這套平臺開發出來之后,就招一批能
          夠泡著茶寫JAVA的人去為業務服務,所以這就是軟開表面給大家造成這樣一種映向的原因
          ,工作難度是不大,但是絕對不是說銀行系統無人,只是那些平臺的工作者沒有浮出水面,
          或者相對來說比較低調而已. 
              回到了我不屑的泡著茶寫JAVA,啊,的確,難度是不大,數據庫查來查去,日志記來記去
          ,流程可能夠復雜,但不是算法的復雜,只是實現起來很煩而已.但是,這些人真的有足夠的
          工夫泡茶么?大家喜歡用日新月異來形容當今社會的發展,形勢日新月異了,業務需求一樣
          也是日新月異,于是他們每天都要針對各種業務需求寫出不同的程序來,這個時候,他們的
          關注點應該從技術轉向業務上來.業務需求給他們的壓力使他們再無暇關注技術本身,所
          以寫JAVA的人也有寫JAVA的人的難處,只是業務上的繁瑣,向來被純正的喜歡搞底層/搞算
          法的人所鄙視,的確,你的腦筋可能是很活,但是物盡其才,如果真的有這樣的思維,是應該
          去搞一些高深的東西,研究技術的創新,寫JAVA,面對各種應用需求,是有些埋沒,但是話又
          說回來,這樣腦筋很活的人能干這樣的工作么?工作再枯燥也需要有人做,他們能有耐心應
          付這樣的枯燥么? 
              現在滿大街的小公司,沒有幾個是真正搞什么底層東西的,大家其實都在針對各種業
          務做各種項目,銀行的開發之所以顯得有些乍眼,主要是因為:1,國企大氛圍;2,做出的東
          西不用面對銷售壓力.其開發從技術含量來講,并無本質區別. 
              所以在銀行軟開工作,絕大部分人,絕對部分學計算機的人,需要面臨的是一個方向的
          調整,需要將注意力從技術的深度轉到業務的廣度上來,一味盲目的覺得人家的工作乏味,
          沒技術含量是不現實的,這也是我目前一個態度的轉變. 
              技術做到最后,就是大同,惟有業務,才能使其中的努力變成鈔票,大家(尤其是學計算
          機的人,尤其是并不適合搞算法,搞底層的人)如果想進軟開,一定要有這樣的認識. 
           
          ----------------------------------------------------------------------------
          --------------------------------- 
           
          ------------------------------軟開的壓力篇----------------------------------
          --------------------------- 
              銀行軟開之所以有些乍眼,前面說過一條,不用面對銷售的壓力,是,我們做出來,業務
          人員就得用,可是真的沒有壓力么? 
                  我曾經聽說過這樣一個例子:一個工行網點的客戶經理,費盡了口舌,花了半天工
          夫,說服了兩個客戶買基金,終于她們被說動了,坐下來填單子準備簽字了,這個時候,系統
          出故障了,交易無法進行,沒辦法,客戶經理只能含著淚,帶著她們出來,把她們指給旁邊的
          農行/建行(本人屬于工行,這些時候自然偏向工行,其他銀行朋友勿怪).這個例子,體現了
          銀行軟開的一點壓力吧,不論什么時間,不論什么情況,不論你用什么手段什么方法,請你
          給我保持住穩定,如果系統慢,客戶經理還可以陪客戶聊天,可是如果宕了,什么叫所有努
          力付諸東流,這就是. 
              銀行在全國的網點,大的數以萬計,小的也數以千計吧,各個地方,招來的柜員,那是怎
          么樣素質的都有,我曾聽說過這樣的柜員,這輩子她就會干兩件事,做取款的交易和存款的
          交易,轉賬怎么辦?不會直接轉賬,先給A做提現的交易,再給B做存現的交易.內部實現怎么
          別扭,但是外部的易用性你可得給我做足了,要不人家網點柜員是真不明白.記得唐朝詩人
          白居易還是王安石,每寫一首詩,都要問老百姓能不能看懂,軟開面臨的情況也很類似,白
          居易王安石歷史上就這么兩個人,然而你要求每個軟開員工每個項目都能做到這樣,不覺
          得有壓力么?尤其是心高氣傲的計算機人,那 更是不屑了.可是,這是軟開,如果想進來玩,
          請放下你的架子,認真/細致的處理好所有細節. 
              還有一個路人皆知的壓力,如何保障運營系統的安全,大家存錢的時候按完密碼鍵盤
          了,系統沒有響應,柜員要求你重新輸入你會怎么想?難道不是我的密碼被盜了?你怎么能
          保證?這樣的事情只要發生,只要桶上來,整個銀行總部的領導層都會開始關注這個問題,
          甚至銀監會也要監督你的處理方式.這個時候,軟開員工身上的壓力將會可想而知,一旦最
          后查明是程序的問題,所有一干人等(開發/測試/小組領導/部門領導),全部要受罰,這是
          肯定的.網銀的運營,得有多少加密措施來保障數據的安全,且不說技術上的加密算法,就
          拿業務來說,大家去辦個U盾,看那個網點工作人員得填多少單子,就知道銀行為保證安全
          ,得下多少精力了. 
              很多小公司,常年就給一個醫院/一個機關做項目,每做一個,掙10幾萬,然后全組人出
          動到現場,花幾天時間,解決各種安裝遇到的問題,保證沒問題后再大家都撤,老總請大家
          吃飯.銀行是怎么樣?做一個項目,全國所有省份所有網點均要投產,如果大家各自全都出
          動,人手夠么?各種不一致的現象報上來,就是招10倍人也解決不了,所以銀行軟開壓力最
          大的時候就是投產前夕,所有人從老總到小兵全部通宵達旦地守在電腦旁,應付各種可能
          問題的出現,而且作為高風險機構,銀行在投產時候遇到的問題的解決,一定要準,一次性
          成功!就如密碼鍵盤來說,出現問題是系統不響應,馬上回來改了,自己測過之后沒問題,再
          發補丁,結果造成系統崩潰,你可以想象一下客戶的憤怒和不安!全中國這么大,我們不可
          能到處跑過去看問題,所以,怎么樣才能保證程序在全國跑都沒問題,這是問題,也是巨大
          的壓力. 
              銀行軟開的壓力,不來自于有沒有客戶,而來自于客戶太多,給我們系統造成的壓力,
          無人問津的悲哀和無數人目光如炬的質詢,后果都一樣,讓你身心俱疲. 
          ----------------------------------------------------------------------------
          ------------------------------------- 
           
          ------------------------------銀行軟開的發展篇------------------------------
          ----------------------------- 
              銀行軟開的發展,對于學計算機的人來說,是一個不小的難題,也是很多人對于要不
          要來這很猶豫的問題,技術和業務上的難以抉擇.還有國企多少的一點特色對自己發展造
          成的干擾. 
              是的,這些都是問題,值得研究,第一個關于技術和業務的問題,我不想再多說,以掙錢
          為終點,那么條條大路通羅馬,以境界的追求為終點,軟開可能不屬于一個好的地方,畢竟
          你的心高高在上,不屑于一些簡單的活.路是自己選的,怎么走都可以,但是有一點要注意,
          軟開是有一部分專搞技術的人的,只是因為銀行軟開的出發點是針對業務做開發,所以為
          開發提供更便捷方式的平臺方面的人屬于少而精的配置.因為一些國企的特色,進來后可
          能因為我這篇文章,一些想要進來做平臺的計算機人,有可能被領導分配到業務為主的開
          發部門,關于這些人我想說的是,軟開屬于計算機研發為主的企業性質單位,人與人之間的
          關系,沾點國企的影子,卻遠沒有那么復雜,關于自己角色的的定位,你可以跟領導好好溝
          通你的長處和你希望干的內容,一般來說,領導是會多少考慮的,即便不能百分百滿足你需
          要,百分之三十/四十/五十等等也能滿足一些,只會悶頭做技術,不會與人交流的人還是不
          要來了,這里不適合你,即便你不跟領導溝通,你也需要跟下面分行的人溝通,交流,是工作
          需要. 
              有的人會說,銀行軟開不掙錢,掙錢的是那些懂業務的人,這里首先要明確,什么樣算
          掙錢,工資是每個人都掙的,要是拿這個說的話就沒意思了.大家說的應該是提成/分紅的
          那一類人,的確,軟開掙不到那樣一些錢,那些屬于業務部該掙的錢.我覺得大家在討論這
          樣一些問題的時候,首先要把自己擺正,軟開的人,其實也就相當于一個IT公司的人,IT公
          司的那一部分分紅,軟開一分錢都不會少,而且軟開的錢有保證,不隨經濟危機而起伏.平
          時福利也還可以.大家在羨慕業務的人拿得多的時候,是否可曾想到自己公司的銷售在談
          好一個項目的時候提成也是遠勝于自己工資的呢?只要你自己肯轉變思路,專心學業務,借
          助于自己的技術優勢,以后去業務部分掙錢也不是沒可能,關鍵就在于自己怎么看,不能既
          不想作出改變現狀的努力,又覺得人家掙錢掙那么多不公平.再者如果你實在干不了業務,
          那么就干技術,轉管理或者技術做到死當技術經理,總之就是成為領導,軟開領導同樣掙不
          少錢,他們地位也和HP/IBM的高管地位一樣,也許錢一年比人家的少些,但是國企有國企的
          福利,這個是外企不能比的.每個人都該知足,生活提高一點,抱怨就該少一點,自己已經掙
          了30W一年,夠花了,聽說別的部門一年年終獎拿了20W,全年工資50W也該把心態放平和些,
          不就是錢么,又不是不夠花,何不知足長樂呢?(注:業務部門不包括那些網點的柜員,他們
          工資很少的). 
               軟開的發展空間最大的難處在我看來,是這里雖然由業務指導開發,但是開發量很大
          ,導致你也不能完全放下你的技術,這樣技術和業務之間徘徊不定,最終會有礙人的成長,
          而且他的技術為了業務開發的便捷,被很好的簡化了最后有可能技術沒學成技術,業務也
          沒懂多少.這個是確實,一個地方不可能十全十美. 
              我的意見是,你一生比較想過安穩的生活可以來這,你如果是一個有追求的人,并且腦
          筋可以變通的人,也可以來這,你如果是是一個有追求的人,并且好學的人(無論是業務還
          是技術,都多得讓你學不完,當你學得夠多就有資格提前成為領導了),也可以來這.一個有
          追求的人,并且勤勉踏實的人也可以來,有這么兩類人,技術的大牛人不要來,你應該去百
          度/GOOGLE發揮你的優勢所在,有追求,但是沒有什么魄力改變現狀的人,就不要來,免得一
          輩子平庸的現狀可能讓你萬分苦惱. 
              還有一個難處我也提一下,它終歸是國企,它注重能力,畢竟銀行的系統不能瞎來,同
          時也要求年限,年限一到才能往上升,所以不能忍的人也不要來了吧,當然也可以來了再走
          ~呵呵 
             最后我說一下薪資發展空間吧,現在銀行軟開一般待遇都不差,但是升值空間,在你沒
          成為領導之前漲幅不大,其實任何地方都一樣,只有當領導,工資才能有質的變化,只是軟
          開要當上領導的周期比外企要長一些,也不會長得不可理喻,大家有的總說想來這,覺得穩
          定但是又嫌工資漲得不快,這就是典型的魚和熊掌都想得到的心理了,選擇了軟開,選擇了
          國企的穩定,必然要放棄一部分收入的增幅,既然思想不夠純粹,要為追求奮斗一生,而是
          選擇既有保障也要有追求的奮斗,那么你的生命里必將在別的地方付出一些代價,怎么樣
          都能成功,問題還是在于個人吧. 
              我簡單說明一下,工行軟開,屬于總行編制,恩,就這么多了. 

          posted @ 2010-03-01 11:25 lucas_y 閱讀(1292) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 晋宁县| 洛隆县| 景宁| 雅江县| 天全县| 长沙市| 澎湖县| 岳阳市| 韩城市| 定兴县| 弋阳县| 湘阴县| 马龙县| 民丰县| 和静县| 留坝县| 纳雍县| 古丈县| 江永县| 乡宁县| 凌海市| 昌平区| 安庆市| 台中县| 宜君县| 昭觉县| 嘉兴市| 柯坪县| 安溪县| 临桂县| 龙泉市| 威信县| 红桥区| 肇源县| 崇仁县| 佛山市| 旬邑县| 昌黎县| 新郑市| 杂多县| 东乌|