Java項目開發(fā)筆記與開發(fā)過程中的問題總結
Java項目開發(fā)中關于使用Java平臺的問題:
1. 開發(fā)工具太多, 什么Eclipse, Jbuilder等,各有不同, 讓人熟悉就花時間了, 本為以為對JB比較熟悉,又有2006版本了, 就用它吧, 可是才兩天, 就發(fā)現(xiàn)自己的代碼文件中的中文變?yōu)閬y碼了, 當然網(wǎng)上有一堆解決方案, 只是心里不爽, 直接不用了, 改為eclipse了, 操作界面不是很熟悉, 與VS.NET IDE還是有不少區(qū)別, 只是用多了自然就熟悉了,
又從網(wǎng)上當了一堆插件, 什么tomcat, xml編輯器, 沒有用myeclipse, 雖然支持JSP,以前用過一下, 也不太好用, 其它的就沒找到什么好東西了, 時間也不允許, 至少現(xiàn)在可以調(diào)度Java代碼了, JSP的調(diào)試再說吧.
2. 開始整的時候,發(fā)現(xiàn)自己在WEB開發(fā)方面熟悉的是VS的ASPX事件模型, 反而不知道如何處理JSP了, 只好使用以前ASP的模式, 使用form提交, 感覺真是太落伍了, 雖然現(xiàn)在有許多AJAX之類的東西, 也支持客戶端事件模型, 實在沒時間研究這些東西了. 先做出來再說.
數(shù)據(jù)庫連接類使用了以前jive中的幾個類, 支持在xml中配置連接等, 再自己寫了一個類, 從XML中讀取SQL語句, 差不多能用.
3.在網(wǎng)上搜索了一把,未找到在eclipse中對web service支持比較好的plugin,發(fā)現(xiàn)版本都比較低,似乎久未更新了,JB下到是有不錯的設計和編譯界面,只是JB其它太爛。
Java項目開發(fā)中的字符集問題:
使用Java首先就要碰上一個中文字符的顯示和處理問題, 這些問題總是很煩, 要對request進行編碼才能解決.
既然使用非MS平臺, 數(shù)據(jù)庫可能就不會用到mssql server了, 使用mysql, 發(fā)現(xiàn)要移植以前的數(shù)據(jù)還是比較容易, 但mysql的驅動實在不好弄, 剛開始使用純JDBC的驅動, 結果發(fā)現(xiàn)在中文字符的處理上始終有問題, 只好
網(wǎng)上查原因, 發(fā)現(xiàn)jdbc驅動的版本太低, 在判斷中文字符上有問題, 升級驅動程序, 可以插入和顯示了, 但SQL中是中文, 可是進了數(shù)據(jù)庫就是亂碼, 試了N遍也不行, 只好改為jdbc-odbc.
但接下來在執(zhí)行batch sql時又報錯了, 說mysql odbc driver 的SQL語法錯, 檢查了半天, SQL也能在mysql中執(zhí)行的, 就是不能通過Java提交執(zhí)行. 用的是mysql 5.0.X, 支持unicode 的編碼建表. 最后只能采用一個折衷的辦法,自己寫一個批量執(zhí)行SQL的類,采用“;”分隔多個SQL,在調(diào)用時仍然一行一行的執(zhí)行,郁悶。
最終的字符集解決辦法:
頁面上要設置字符集的輸出格式,如GBK或GB2312,另外,如果使用統(tǒng)一的包含文件定義輸出字符集,還是不行,必須在每個頁面中單獨定義,也可能是我的INCLUDE方式不對;
數(shù)據(jù)庫連接字符串中也要設置編碼;
在傳遞數(shù)據(jù)到DB的SQL還要對中文進行編碼;
String key = new String(request.getParameter("txtKey").getBytes("ISO8859_1"));
最后還有一個問題是,如果TOMCAT編譯JSP文件生成的Java文件有亂碼,那么在訪問的時候頁面上總是要報錯,什么"delete tokens"之類的,此時要刪除掉tomcat\work目錄下的中間編譯代碼才行;
控件及常用庫
WEB控件, 網(wǎng)上有一堆各種各樣的lib和控件, 但這些東西太浪費時間, 光是上網(wǎng)找就比較花時間了, 下回來試用也有各種各樣的問題,
每個控件有自己的特色, 而且每個總是滿足了這個,滿足不了那個需求, 要都滿足, 還是要收費的才行, 畢竟天下沒有多少免費的午餐;
主要有幾個:
1。數(shù)據(jù)顯示表格控件,應該能支持排序,有緩存機制,能分頁,能設置格式,支持ResultSet或ArrayList之類的,還要有導出excel等功能;最好要能簡單使用。
2。圖表控件,最有名的當然是cewolf/jfreechart,只是要使用它自己定義的DatasetProducer,不能直接使用ResultSet,也是個麻煩事,不過的確是很不錯的控件了。
Java項目開發(fā)小結
1。經(jīng)過這次移植,發(fā)現(xiàn)Java項目開發(fā)還是有許多很牛的地方,采用hashmap來緩存數(shù)據(jù),效率的確很不錯,只是用得太多,缺乏管理機制,有點混亂了,下一階段再重構一下,形成一個管理框架最好;
2。eclipse開發(fā)的確很不錯,與vs ide差別是比較大,只是使用習慣了之后發(fā)現(xiàn)其功能強大,而且可以找些plugin來擴展功能,估計我只是看到了點皮毛而已。
3。在Java下開發(fā),使用Javascript太多,還沒找到更好解決辦法,水平有限;
4。與另一個人一起開發(fā),大家的編程風格和代碼不夠規(guī)范,使用了一些重復的類和方法,這在后期維護是個工作,時間太緊,項目總是這樣,就沒得多少提高了;
個人水平實在有限,上面只是一面之詞,Java項目開發(fā)月底才結束,有什么變更再補充。
【編輯推薦】