<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    寫程序,做產品,過日子

    成功其實很簡單,就是強迫自己堅持下去

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      69 Posts :: 1 Stories :: 92 Comments :: 0 Trackbacks

    #

    目前Java IDE的主流自然是eclipse系列,我一直用的也是這個。在Sun積極宣傳Netbeans5.5的時候,我也試用了一下,并沒有找到從eclipse轉移過去的理由。我對它的不滿意主要有兩點:
    1、沒有所見即所得的JSP/HTML編輯器。
    2、沒有為Hibernate提供開發支持。
    Netbeans5.5在java 6下的桌面開發能力很強,不過短期內我還用不上。

    下面重點說說Eclipse平臺下的一些開發工具。

    1、JSP/HTML編輯工具
    Lomboz是開源的JSP編輯器,不過它不支持所見即所得的可視化編輯。雖然我并不喜歡在可視化設計界面中通過拖拉來調整頁面。但是它對代碼的快速定位是我所需要的。
    Bea Workshop for JSP的確精彩,不過它要求把所有的JSP一個WEB-INF的目錄。我的項目很大,每個模塊都有獨立的JSP目錄,這個要求很煩的。好像這個目錄可以配置(但是必須有),不過由于其它原因,我已經放棄了。
    我現在選的是MyEclipse,它的JSP編輯器做得不如Bea Workshop精細和強大,但是自由,夠用。另外,MyEclipse比Bea Workshop便宜得多,有可能說服老板買單。不過,MyEclipse集成的Hibernate功能著實讓我光火了很長的時間。

    2. Hibernate集成工具
    在Eclipse中集成Hibernate開發的有三種:Hibernate官方出的Hibernate Tools, Myeclipse和Bea Workshop。Jbuilder 2007也部分支持Hibernate。Hibernate Tools是開源的,其它的工具都是在它的基礎上進行增強而來的。

    如果使用Ant命令來操作Hibernate Tools,你會發現它非常強大,可以靈活的在表,HBM和pojo間互相轉換??墒撬腅clipse集成太狠了點,只要求一個逆向工程的配置文件,就可以根據數據庫表生成所有的HBM和pojo。這個功能貌似一步到位,其實很不靈活。
    (1)如何寫好HBM是很有學問的,我經常需要細心的調理好HBM再生成pojo。
    (2)每次生成時都一刀切的做法對于增量開發來說是個災難。好不容易調理好的HBM和Pojo,一下子全被沖掉了。
    (3)它的數據庫連接也有個問題,不會過濾Schema,每次都把所有的數據庫列出來。我們的開發數據庫服務器上安裝有三四十個數據庫,想想多么恐怖啊。
    Hibernate Tools最強的功能,當數HQL編輯器。可以查錯,可以檢查最終生成的SQL,可以得到運行結果,可以添加參數。這些功能實在是太有用了。

    Myeclipse對Hibernate Tools進行了改進。所以它和原生的Hibernate Tools共存時會發生一些奇怪的問題。Myeclipse中有兩個改進非常棒:指定數據庫Schema(再也不用在三四個數據庫中找我的那份試驗田了),根據選中的HBM生成Pojo(放心大膽的用吧,已經做好的HBM和Pojo不會再被沖掉了)。
    不過,Myeclipse對HQL編輯器的改進就有點讓人光火了。首先是連接問題,橫豎就是連不上數據庫,左找右找找不到原因,最后把Eclipse workspace重建,把相同的配置連接,一下子又可以了。
    其次,Myeclipse沒有提供新建HQL編輯器的菜單,而是在我手工建立一個hql的文件后,在打開它時調用HQL編輯器!打開的過程可能涉及到數據庫連接,非常慢。如果你在退出eclipse中沒有關掉HQL文件,那么再次進入eclipse的時候,您先去喝杯茶,慢慢等吧。

    Bea Workshop各方面做得都非常精致,Hiberenate集成也不例外,各類編輯器的功能布局明了易用。但是我在試用時碰到一個難以置信的致命的bug:所有Bea Workshop編輯器和對話框中的文本輸入框基本不接收光標!
    這是什么概念?就是說你沒法點進文本框,沒法輸入任何東西。我唯一成功的一次是在沒有光標的情況下,亂打了幾個字母再回車。對話框沒有顯示任何東西直接關閉,但在主編輯器中我打的字母顯示了出來。不過除了文本框外,其它的如下拉框,選擇框都正常。
    哪個開發人員會出這么離譜的Bug啊!我試過兩臺機,問題一模一樣。難道是因為我的JDK是1.5的緣故?!
    不管什么原因,我是沒辦法再試下去了,只好將其請出了我的電腦。在請出之前,通過菜單檢查,沒有發現指定HBM生成Pojo的功能。這兩大原因,足夠我放棄它了。

    Jbuilder 2007做得太強了。我用它明顯感覺小腳穿大鞋。人家根本不希罕Hibernate。僅僅把Hiberenate作為EJB 3.0和JPA的一種實現方式。所以根據沒有HBM這一說。而且是徹頭徹尾的可視化MDA開發。真的需要一個明星團隊,在嚴格的流程支持下,才能玩轉Jbuilder 2007。我兩個條件都不符合,最重要的是老板嫌它太貴,只能放棄。

    Technorati
    : , , ,

    posted @ 2006-11-08 12:16 Welkin Hu 閱讀(242) | 評論 (0)編輯 收藏

    已經n年不用VB了,一直不忍刪除當年的這個文本文件。

    --------------------------------------------------------------------------------------------

    表示日期值的數字符號 (#) 必須包含在字符串中,這樣它們才能連接到日期值。

    --------------------------------------------------------------------------------------------------
    Shell(pathname[,windowstyle]) 
    執行一個可執行文件,返回一個 Variant (Double),如果成功的話,代表這個程序的任務 ID,若不成功,則會返回 0。

    ------------------------------------------------------------------------------------------------
    在DLL中的窗體要先設對象才能打開。
    dim frm as new Form
    frm.show vbModel: 主程序打開frm,停在此句。
    frm.show :主程序打開frm, 繼續執行。

    ------------------------------------------------------------------------------------------------

    TreeView1.SelectedItem.Index

    Node.FullPath ' \ \

    --------------------------------------------------------------------
    *****
    不能按如下方法定義變體參數:
    Can not use parameter in this way:
    Optional vSearch As Variant = Empty

    Replace method
    Definde parameter: Optional vSearch As Variant
    Definde varible: Dim var as Variant

    Transfer Value code:
    If IsError(vSearch) Then
    var = Empty
    Else
    var = vSearch
    End If

    ----------------------------------------------------------------------
    ****
    鍵盤字符按鍵的鍵號:
    Char keyCode in Keyboard
    48 ~ 57 , 65 ~ 90 , 96 ~ 110 , 186 ~ 192 , 219 ~ 222

    VB Code:
    If KeyCode < 48 Or (KeyCode > 57 And KeyCode < 65) _
    Or (KeyCode > 90 And KeyCode < 96) Or _
    (KeyCode > 110 And KeyCode < 186) Or _
    (KeyCode > 192 And KeyCode < 219) Or KeyCode > 222 Then
    Exit Function
    End If

    ----------------------------------------------------------------------------
    ***
    刪除有子表的表記錄時要考慮子表的事務流操作。
    oContext.SetAbort
    oContext.SetComplete

    ----------------------------------------------------------------------------
    ******
    工程文件引用不當造成程序不能生成相應對象而導程序不能運行的問題
    在同時調試多個工程文件的情況下,如有如下幾個工程:
    啟動工程:SysAdmin ; 管理模塊工程: SysAdminModule ; 主工程: APSParaMaint
    APSPrarMaint中不引用前兩個工程,SysAdminModule引用APSParaMaint, SysAdmin同時引用APSParaMaint與SysAdminModule。
    計算機上已注冊表各工程的DLL文件,且引用的工程文件是這些DLL,那么在聯合三者構成工程組調試時,打開的工程源文件(VBP文件)由于沒有被引用到,從而是不起作用的,程序將按DLL文件運行。應該使其所有引用工程組內工程的文件為源文件。如果有的是源文件,有的是DLL文件,就有可能出現不能生成相應對象的問題。

    中間層工程屬性注意:
    工程兼容性,線程,編譯文件的位置。



    ---------------------------------------------------------------------------
    ***
    寫SQL要時時考慮空值的處理。

    ---------------------------------------------------------------------------------
    ****
    在VB中獲取打印機設置的方法:
    VB內置有系統級全局變量Printer/Printers,其中存儲要當前系統中的所有打印機設置情況。
    可以使用set Printer = Printer(i)的方法來為當前程序選擇打印機。
    在Crystal Report 中,如RPT文件選中No Printer選項,要想在程序中可以打印,可按如下方法:
    On error resume next
    crpReport.SelectPrinter Printer.DriverName, Printer.DeviceName, Printer.Port
    crpReport.PaperOrientation = Printer.Orientation
    If Err.Number = 484 Then
    MsgBox "No printer found in you system!", vbCritical
    Err.Clear
    GoTo ExitHere
    End If
    crpReport.PrintOut True

    由于在當前系統沒有打印機設置時Printer/Printers不會被置空,其標志性屬性都不可用,故只能用錯誤處理來判斷無打印機設置時的情況。

    --------------------------------------------------------------------------------------
    **********
    delete from at_UserLogonActivity

    --------------------------------------------------------------------------------------
    *********
    數值數據校驗的注意事項:
    1,應在輸入控件的Validate事件中進行校驗。
    2,校驗內容由主到次為:長度(整數部分與小數部分),數值范圍,可否為負,顯示格式及與其它數據的大小關系。與其它數據的大小關系放在所有數據錄入完成后再校驗。
    3,校驗時要考慮輸入數據為科學計數式的校驗,如數據有長度要求,可將其格式化為浮點數顯示再做校驗。對于所有有數值范圍的校驗,由于一般控件錄用入值默認為字串型,所以一定要先將其轉換嶁數值型再做校驗。
    3,對于窗體上的取消按鈕之類的控件,應設其CauseValidate屬性為False,以便在取消操作時不做校驗。
    4,如無必要用科學計數式顯示數據,就應在輸入控件的LostFocus事件中使用Format函數將其顯示浮點格式。

    -------------------------------------------------------------------------------
    ******
    設計CrystalReport時,如選中Save Data With Report項且在設計時生成了預覽數據,那么此報表將不能再直接動態生成數據,而要在使用DiscardSavedData方法清空數據后才能生成。但使用DiscardSavedData后系統將自動要求更新TTX數據源,如在報表原有路徑下找不到相應的TTX文件,就會有對話框彈出要求指定文件地址。此是指出正確的文件地址或直接按取消都可以成功更新數據源。

    --------------------------------------------------------------------------------
    ****
    TrueDBGrid
    當點擊TrueDBGrid的行頭時,此行即被設為選中狀態,此時按Del鍵可以刪除此行。但如在TrueDBGrid尚未得到焦點是就點擊其行頭,TrueDBGrid只會將所選行設為選中狀態,卻不會同時得到焦點,因此此時如按Del將不能對TrueDBGrid起作用。建議在其Click事件中加入代碼使其得到焦點。

    -----------------------------------------------------------------------------------
    ****
    Fileds in Table for Table Maintenance Module
    NeedMaint , TableName , FieldName , FieldCaption , FieldType , IsNullable , IsPK , IsIdentity , BaseTable , BaseFields , DataRange , DataFormat , BoxType
    DataRange為字串型,可采取如下幾種格式:0,1 (-99,99]
    DataFormat:日期格式,字串大小寫,數值格式等。
    當IsIdentity為True時此字段要顯示,但無論何時都不可編輯。
    外鍵:組合框
    日期時間:DTPicker
    數值字串:文本框
    邏輯值:0-1值:選項框
    離散值:單選鈕
    不應出現應為外鍵的離散值。

    離散值表:
    TableName , FieldName , Vaule , DisplayValue


    ---------------------------------------------------------------------------
    *******
    如統一使用Grid新增記錄,如何處理允許一次新增多個記錄?
    有外連表的Code-Desc如何實現?
    如外連Program_Cd,可引申出更進一步的外連表Product_Cd,如何處理?
    如何在TreeView中顯示?

    --------------------------------------------------------------------
    ********
    CallByName:通過傳遞方法或屬性名來訪問函數。


    --------------------------------------------------------------------
    ********
    在FlexGrid中使用CheckBox的方法:
    1,列表顯示時只顯示文本,在得到光標進行編輯時才變成CheckBox.
    2,對所有數據單元格在列表時就入在CheckBox中。
    3, 使用√,不加方框。

    涉及到Check值的處理應主要交由Field對象來做。


    --------------------------------------------------------------------
    **********
    在不同進程間不能直接作地址參數傳遞。
    即在中間層與客戶端之間不能傳遞自定義的Class對象.

    --------------------------------------------------------------------
    ********
    在新生成一個對象時,觸發Class_Initialize事件。此時對象還沒有生成,所以不能在此事件中出現對自身的對象引用,更不宜生成其子對象。可使用Init函數來做一些對角生成后的初始化工作。
    -----------------------------------------------------------------------------
    *****
    table.Normal{width: 640pt; background-color: yellow; border-collapse: collapse;}
    td.Normal{border: thin solid blue; padding: 5pt; margin: 5pt;}
    使用CSS定義表格樣式時,無法在Table級定義每個單元格的邊框等屬性,此時應按上例使用。
    -----------------------------------------------------------------------
    ****
    xsl:apply-templates:遍歷指定的結點集(默認為當前結點的子結點集,不含孫結點),并對其依次進行模板匹配(即格式化)。

    -----------------------------------------------------------------------
    ****
    <xsl:for-each select="Set/Record" order-by="+ number(ID)">
    在IE5中不能使用sort,可用此法代替。

    Technorati : ,

    posted @ 2006-11-06 17:00 Welkin Hu 閱讀(768) | 評論 (0)編輯 收藏

    1. Hibernate can not set null value to primitive types.
    If data is null in DB, and Hibernate maps it as primitive type, An PropertyAccessException will be th rowed when.
    Our solution (Discussed with Andy):
    1) Ensure all Database fileds have default value.
    2) Wrap all primitive value in DTO. (Andy says this is not essential.)

    2. Debug Hibernate in my product

    In single way one-to-many association, when update, Hibernate always update children's id to null!
    Only when Bi-one-to-many association, Hibernate can update children correctly.
    Do not use Hibernate List. It need a index/list-index property, which bind to a DB column, but means the real index of Java List. The List often get many null items.
    Hibernate set is good. But our DTO already use ArrayList as Collection.
    Children Id is missing after updated it.
    Hibernate session.save normally call insert, session.update normally call update.
    When update Bi-one-to-many association, parent always correct. But always insert children, can not delete and update children. CAUSE: I use a modifiable field as PK, because all children's ID is missing from JSP. In this case, I should manual delete and insert children table.

    BTW, Set can not include duplicated items. However. Our DTO have no PK when it created until saved it to DB. This cause add new item fail.


    Technorati : ,

    posted @ 2006-11-06 16:59 Welkin Hu 閱讀(210) | 評論 (0)編輯 收藏

    我的多普達575昨晚突然被鎖在耳機模式中,怎么也恢復不到正常模式。后來一急,干脆恢復出廠設置。天啦,還是不行。幸虧這是智能手機,所有的資料都備份在我的電腦上。

    最后上網查查,原來是因為耳機孔中的彈簧沒有復位。問同事要個牙簽,捅幾下就好了??!

    posted @ 2006-11-02 18:29 Welkin Hu 閱讀(388) | 評論 (0)編輯 收藏

    Windows XP系統目錄下的dllcache目錄實在太大??梢圆捎孟旅娴姆椒ò踩宄?。

    方法一:組策略

    點擊"開始→運行",在運行對話框中輸入"gpedit.msc"命令,打開了組策略編輯器,打開"計算機配置→管理模板→系統→Windows文件保護",在右側窗體中顯示四條文件保護策略使用這些策略就可以輕松定義Windows系統的文件保護功能。

    文件保護功能會備份大量的被保護的文件到dllcache目錄中,但隨著系統安裝的軟件越來越多,會發現dllcache目錄的體積不斷增大,浪費了很多硬盤空間。該策略就是用來限制dllcache目錄的大小。在"限制Windows文件保護緩存大小"對話框中,點擊"巳啟用"選項,然后指定"緩沖區大小",如我們想限制dllcache目錄最大為300MB,就在輸入欄中輸入"300"即可,最后點擊"確定"按鈕。

    完成以上設置后,需重新啟動系統才能生效。

    方法二:SFC命令

    限制Windows文件保護緩存大小也很簡單,如設置為300MB,在命令提示符下輸入"SFC /CACHESIZE=300"即可。"
      均重新啟動,大小仍然是429M,于是運行"SFC /PURGECACHE"清空之!

    Technorati :

    posted @ 2006-11-02 10:54 Welkin Hu 閱讀(1282) | 評論 (0)編輯 收藏

    JasperSoft now provide many powerful extension around JasperReports.

    http://jasperintel.sourceforge.net/

    JasperServer is specifically designed to provide a Web application around JasperReports. Continuing the philosophy of JasperReports, JasperServer is aimed at providing a managed, stand alone Web reporting environment, as well as being able to be embedded in existing Java Web applications, and services to a variety of technologies through Web services, including the LAMP stack. By focusing on a clean business API and using an advanced inversion of control architecture, JasperServer can be easily integrated and customized for your needs.

    JasperIntelligence is an open source business intelligence platform from JasperSoft, providing common services like security and metadata management, and the capability to easily add additional functionality. The JasperServer is the first service using the JasperIntelligence platform. Following soon will be:

    • Report and metadata designers integrated with the platform
    • OLAP user interfaces
    • Data warehouse management environments
    • Data integration services (ETL)

    roadmap

    JasperServer Planned Features

    • Additional report data source types: Hibernate, EJB, POJO, XML
    • RTF output of reports through the user interface
    • Additional input control types
      - Multiple select
      - Select from a database lookup
    • Import and export of repository contents
      - Supports moving between repositories ie. test to production
    • Web services and PHP example application
      - Support for PDF, Excel and RTF report renderings
    • iReport plugin for repository browsing and report deployment
      - Includes Web services for repository management
    • User Search
    • Integration of external authentication mechanisms, such as LDAP, JAAS
    • Session management without the use of cookies
    • Internationalization of the Web user interface
    • Management of resource bundles through the user interface
    • User Preferences
    • Scheduled report generation
      - Includes storage of generated content and notifications of new reports to interested users via email
    • Saving report parameters and rerunning reports using saved parameters
    • Additional documentation
      - Architecture overview
      - Javadoc
    posted @ 2006-05-14 15:15 Welkin Hu 閱讀(891) | 評論 (1)編輯 收藏

    1. How to list all months in cross table.

    Cross table can not show a month which does exist in data set.

    2. How suppress group detail if duplicated?

     

    3. Export HTML Style can not fit UI Standard.

    It is too ugly. We need better export engine

    Technocratic : ,

    posted @ 2006-05-12 09:49 Welkin Hu 閱讀(394) | 評論 (0)編輯 收藏

    I'm finding a right project track and issue manager tools for a long months.
    Last week, the golden week of May, I found Track+ (http://www.trackplus.de).

    It is open source but want a reasonable price for the company over 9 persons. My team has 6 memebers.
    If I apply Track+ successfully in my team, My boss will be inspired.

    I will complete the project's estimation tomorrow. Track+ can help us check how actual mandays far from estimation. Last project,? the actual mandays is double of most?possible estimation, but approximate to the?maxium estimation.

    This time, I still use PERT method?to estimate: findout minum, most possible and maxium manday. but I know more detail than last time. And I have stable team members. they join the estimation. I wish we can achieve the estimation target.





    posted @ 2006-05-11 21:48 Welkin Hu 閱讀(286) | 評論 (0)編輯 收藏

    現在每天都要和國外的同事用英語講很多事情。經常講的時候才發現,居然有一些簡單的常用語都表達不清楚。起個帖子把它們都記下來吧。

    • 半小時 half hour, hour an hour. 可別和one half hour (一個半小時)弄混了。
    • 別在意 no nevermind 似乎比don't worry about 更受歡迎
    • 誤差怎么說啊?金山詞霸翻譯是error! my god!
    posted @ 2006-05-10 21:56 Welkin Hu 閱讀(587) | 評論 (1)編輯 收藏

    僅列出標題
    共4頁: 上一頁 1 2 3 4 
    主站蜘蛛池模板: 国产线视频精品免费观看视频| 亚洲国产无线乱码在线观看| 国产美女视频免费观看的网站| 亚洲精品国产自在久久| 国产亚洲综合久久| 亚洲毛片av日韩av无码| 一区二区三区免费视频网站| 亚洲中文字幕无码久久综合网| 成人免费网站视频www| 国产亚洲情侣一区二区无| 中国内地毛片免费高清| 亚洲精品免费视频| 亚洲精品视频免费在线观看| 亚洲人成在线免费观看| 夫妻免费无码V看片| 老司机午夜性生免费福利 | 一级做a爰片久久免费| 亚洲免费日韩无码系列| av永久免费网站在线观看| 久久精品九九亚洲精品| 色窝窝免费一区二区三区| 亚洲AV无码男人的天堂| 亚洲精品线路一在线观看 | 国产大片91精品免费观看不卡| 国产成人精品日本亚洲11| 国产午夜无码视频免费网站| 一级做a爰片久久毛片免费看 | 中文亚洲AV片在线观看不卡| 青青草无码免费一二三区| 亚洲综合激情五月丁香六月| 亚洲国产综合久久天堂| 免费无码中文字幕A级毛片| 在线精品亚洲一区二区| 国产亚洲成av人片在线观看| 0588影视手机免费看片| 国产亚洲精彩视频| 亚洲视频2020| 亚洲精品国产精品乱码不卡| 国产成人精品久久免费动漫| 人妻18毛片a级毛片免费看| 亚洲成人福利网站|