中文版API
中文版APIhttp://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html
posted @ 2006-06-22 11:02 paulwong 閱讀(180) | 評論 (0) | 編輯 收藏
posted @ 2006-06-22 11:02 paulwong 閱讀(180) | 評論 (0) | 編輯 收藏
posted @ 2006-06-18 13:48 paulwong 閱讀(412) | 評論 (0) | 編輯 收藏
posted @ 2006-06-18 12:35 paulwong 閱讀(1652) | 評論 (0) | 編輯 收藏
我在教授 軟體設計課程,尤其是以使用案例圖在說明架構設計時,每一個用套件(Package)所界定範圍的系統(tǒng),係指軟體應用系統(tǒng),但卻幾乎不會談及到資料庫。因 為,軟體應用系統(tǒng)與資料庫是兩個不同的層次,甚至,把資料庫視為是應用系統(tǒng)的 "私有倉儲(private storage)",會比較恰當。
不過,這衍生出一個問題,學員不容易分清楚如何 "mapping" 抽象面的架構設計至實體的 IT 系統(tǒng),尤其是資料庫的問題。所以,我會先帶一個問題問學員:在設計層次的考量中,進銷存系統(tǒng)有幾個資料庫?
這一個問題要能回答得出來,其假設前提的考量必須要瞭解,在整體的架構設計中,設計團隊到底將 "進銷存" 視為是一個,還是三個,甚至多個的子系統(tǒng)?
參考下圖1,這是把 "進銷存" 視為是單一的系統(tǒng),所以,資料庫只有一個。
好處是什麼? 就是簡單,開發(fā)也容易。進銷存相關的資訊處理,都是在同一個資料庫內,並沒有分散的問題,所以當處理銷貨需要查詢庫存資訊時,只要下 SQL 敘述直接連結庫存的 TABLE 即可。
圖1、將進銷存視為一個整體系統(tǒng)
參考下圖2,架構設計之初時,就已把 "進銷存" 分為三個子系統(tǒng)(Sub-system),或者也可以稱之為元件(Component),以凸顯子系統(tǒng)之間的溝通,是透過介面(Interface)的呼 叫。其實,論子系統(tǒng)的範圍與規(guī)模,稱為 "模組(Module)" 更為適合,不過,我個人並不喜歡以 "模組" 二字來稱之,因為,這個術語被業(yè)界給濫用了,已淪落為在業(yè)務面的術語,卻並沒有在實體的系統(tǒng)間,嚴格遵循透過介面的呼叫。
所以圖2,有三個資料庫。
當銷貨人員處理銷貨需要查詢庫存資訊時,需要透過庫存系統(tǒng)所提供的介面來呼叫,介面的實做可能是 "Web Service"、"Java
Bean"、"Session Bean"、"COM+" 等,但絕對不能直接下 SQL
來呼叫位於庫存系統(tǒng)內的資料庫,否則,就違背了圖2的整體架構設計。不遵循整體架構設計的規(guī)範,私自偷偷連接,稱之為 "跳線"。
上圖2的抽象設計與IT面的實做技術,比較困難,也需要花較多成本,以專案為主(Project-based)的開發(fā),時程短、預算 低廉,不容易達成圖2的設計目標。但若重覆性的專案,專注在進銷存這個領域上,有豐富足夠的領域知識(Domain Knowledge),且打算產品化(Product),那麼,圖2的系統(tǒng)架構來得有彈性很多,"進"、"銷"、"存" 三個子系統(tǒng)(元件),均可以隨意抽換,各自更新或改版,而不會影響到另一個子系統(tǒng),如同 PC 主機板內的硬體元件,可以造成 "PnP(Plug and Play)" 的效果。
請注意,上述問題的提問,會有幾個資料庫,是指抽象的邏輯設計層面,可千萬不要與實體的資料庫混為一 談。例如,圖2雖然需要三個資料庫,但若以 Oracle 資料庫系統(tǒng),DBA 可以將邏輯層面的三個資料庫,切分為三個 "TABLE SPACE",然後放在同一個實體的 Oracle 資料庫系統(tǒng)內;而若是 MS SQL 或是 MySQL,則是切割為三個 "database",放入同一個實體資料庫系統(tǒng)內。
當然,若有地理位置或資料庫系統(tǒng)負載的問題,要分散至多個實體的資料庫系統(tǒng),那也沒問題。例如,進銷存位於三個地點不同的廠,各自配置了三個實體資料庫,各自存放自己的資訊。這也是圖2架構設計的優(yōu)點,一切分合自如!
e 化的系統(tǒng)設計,即使是 ERP 如此重視資料存取與處理的系統(tǒng),應該要能摒除傳統(tǒng)以資料庫為中心的設計觀點,因為,系統(tǒng)整體的彈性度會不佳,很難應變需求面的頻繁變更,或是 IT 實體平臺,包括資料庫系統(tǒng)的變更等。設計重心應該要轉移至 "Middleware",這個術語可能太貼近 IT 平臺面了,倒不如乾脆這麼說,設計的重心就是回歸至以 "應用系統(tǒng)" 為主,是觀察應用系統(tǒng)可以提供那些服務(services)或功能(functions),這些服務與功能其實就是系統(tǒng)一個個可以量化的子目標(Sub- goal),次一步驟才是考量如何取得要能達成這些子目標的資訊(資料),要取得資訊,就是到實體的倉儲,也就是私有的資料庫系統(tǒng)去找,或是,透過標準的 程序,也就是透過標準的介面,至外部系統(tǒng)取得相關的資訓來處理。
posted @ 2006-06-17 09:57 paulwong 閱讀(557) | 評論 (0) | 編輯 收藏
posted @ 2006-06-11 17:52 paulwong 閱讀(297) | 評論 (0) | 編輯 收藏
第一部分:選擇題
QUESTION NO: 1
1、
QUESTION NO:2
What is the result?
A. ABDCBDCB
B. ABCDABCD
C. Compilation fails.
D. An exception is thrown at runtime.
QUESTION NO: 3
QUESTION NO: 4
QUESTION NO: 5
Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream?
A. The encodeURL method of the HttpServletRequest interface.
B. The encodeURL method of the HttpServletResponse interface.
C. The rewriteURL method of the HttpServletRequest interface.
D. The rewriteURL method of the HttpServletResponse interface.
QUESTION NO: 6
Which two are equivalent? (Choose two)
A. <%= YoshiBean.size%>
B. <%= YoshiBean.getSize()%>
C. <%= YoshiBean.getProperty("size")%>
D. <jsp:getProperty id="YoshiBean" param="size"/>
E. <jsp:getProperty name="YoshiBean" param="size"/>
F. <jsp:getProperty id="YoshiBean" property="size"/>
G. <jsp:getProperty name="YoshiBean" property="size"/>
QUESTION NO: 7
Which of the following statements regarding the lifecycle of a session bean are correct?
1.?
java.lang.IllegalStateException is thrown if
SessionContext.getEJBObject() is invoked when a stateful session bean
instance is passivated.
2.? SessionContext.getRollbackOnly() does
not throw an exception when a session bean with bean-managed
transaction demarcation is activated.
3.? An exception is not
thrown when SessionContext.getUserTransaction() is called in the
afterBegin method of a bean with container-managed transactions.
4.?
JNDI access to java:comp/env is permitted in all the
SessionSynchronization methods of a stateful session bean with
container-managed transaction demarcation.
5.? Accessing resource
managers in the SessionSynchronization.afterBegin method of a stateful
session bean with bean-managed transaction does not throw an exception.
第二部分:概念題
1.??? 描述Struts體系結構?對應各個部分的開發(fā)工作主要包括哪些?
?
2.??? XML包括哪些解釋技術,區(qū)別是什么?
?
3.??? JSP有哪些內置對象和動作?它們的作用分別是什么?
?
4、SQL問答題
SELECT * FROM TABLE
和
SELECT * FROM TABLE
WHERE NAME LIKE '%%' AND ADDR LIKE '%%'
AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'
OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )
的檢索結果為何不同?
?
5、SQL問答題
表結構:
1、??? 表名:g_cardapply
字段(字段名/類型/長度):
g_applyno??????? varchar?? 8;//申請單號(關鍵字)
g_applydate???? bigint???? 8;//申請日期
g_state??????? varchar???? 2;//申請狀態(tài)
2、??? 表名:g_cardapplydetail
字段(字段名/類型/長度):
g_applyno??????? varchar???? 8;//申請單號(關鍵字)
g_name??????? varchar???? 30;//申請人姓名
g_idcard??????? varchar???? 18;//申請人身份證號
g_state??????? varchar???? 2;//申請狀態(tài)
其中,兩個表的關聯(lián)字段為申請單號。
題目:
1、??? 查詢身份證號碼為440401430103082的申請日期
2、??? 查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數(shù)
3、??? 將身份證號碼為440401430103082的記錄在兩個表中的申請狀態(tài)均改為07
4、??? 刪除g_cardapplydetail表中所有姓李的記錄
posted @ 2006-05-21 18:46 paulwong 閱讀(2813) | 評論 (2) | 編輯 收藏
posted @ 2006-05-19 11:33 paulwong 閱讀(324) | 評論 (0) | 編輯 收藏
有一些網(wǎng)友問我字符串轉日期或日期轉字符串要如何做,本來已經(jīng)在留言板回答了,但覺得似乎有滿多的網(wǎng)友有這種困擾,因此我把它整理整理貼出來。
在這篇文章中,我用的API是SimpleDateFormat,它是屬于java.text.SimpleDateFormat,所以請記得import進來!
用法:
這一行最重要,它確立了轉換的格式,yyyy是完整的公元年,MM是月份,dd是日期,至于HH:mm:ss就不需要我再解釋了吧!
1.字符串轉日期:
假如把今天的日期轉成字符串可用
這個字符串的內容便類似2002-10-08 14:55:38
透過這個API我們便可以隨心所欲的將日期轉成我們想要的字符串格式,例如希望將日期輸出成
我們可以這么寫:
datestr便會依照我們設定的格式輸出
posted @ 2006-05-18 22:07 paulwong 閱讀(572) | 評論 (0) | 編輯 收藏
posted @ 2006-05-18 22:00 paulwong 閱讀(201) | 評論 (0) | 編輯 收藏