Java PetStore.
Java PetStore是一個原本由Sun (現今己被Oracle所收購) 所開發, 用於產示J2EE功能的應用程式, 第一版的Java PetStore在2001年時就己經出現, 之後許多的開發工具提供者, 為了展示自己開發功具的功能, 都會模仿這個程式, 並將新的設計代換進去, 這使得這個應用程式的能見度變得非常的高. 模仿者中也包括了 MyBatis 與 Hibernate, 使用者也都能在網路上搜尋到與相關的 PetStore 應用程式. 甚至連Microsoft為了產示ASP.NET的功能, 也製做過名為 .Net Pet Shop 的 .Net 平台版本.
Eva 與 jPetstore.
jPetstore是由 iBatis (MyBastis的前身) 所製做的官方展示程式, 因為它只單純地使用到 Struts1 與 iBatis, 所以在眾多的 jPetStore 版本中, 我們選擇它做為修改的基礎, 並以Eva_ORM 替代 iBatis 來展示 Eva 的功能. 而關於我們的修改, 除了替換外, 並未修改其程式思路, 並且原版本中故有的一些bug, 我們也沒有另外去把它們解決掉. 但關於我們的修改值得使用者注意的地方有 :
關於我們所修改建立的網站, 可點擊左下方的圖示下載; 而關於修改後的程式碼, 請點擊右下方的圖式下載.
- 增加了幾個類別, 使得Java類別與資料庫表格的對映成為 1 對 1 的關係, 這也是 Eva_ORM 唯一支援的對映方式. 事實上, 若是以去除各式相依性 (Dependency) 的角度來考慮資料庫表格的設計, 當Java類別與資料庫表格並非 1 對 1 對映時, 必然會存在某方擁有更多相依性, 因此在另一方的某種操作, 會無法在該方實現的問題, 所以非 1 對 1 的對映設計, 是不明智的. 關於更多的資訊, 請參考相關資料.
- 直接以物件參考的方式, 取代原有設計中, 以數值資料去索引物件的關聯方式.
- 由於在 Web 的環境中, Eva 的使用需要額外的 classpath 設定, 如此才能知道目前的網站下, 編譯時可參考的 Jar 檔放在哪裡, 才能參考它們來動態產生 ORM 的實作程式, 而這些Jar檔的位置可由ServletContextEvent物件所提供, 所以我們新增一個名為ClasspathSetup的類別來接收Web啟動的事件, 並使用其接收到的ServletContextEvent物件參數來為Eva設定classpath.
- 在網站的根目錄加入了設定檔 com.ibatis.jpetstore.persistence.ORMapperFactoryImp.conf, 使用者可以在該設定檔內更改資料庫連線的設定, 或是新增其它程式碼, 或直接刪除它也沒有影響, 因為在網站目錄下, WEB-INF\classes 現存的程式裡己有其預設實作 這裡可以是使用者認識 Eva_IOC -- 一種讓你以更自由的方式去做設定的工具, 的第一步.
關於我們所修改建立的網站, 可點擊左下方的圖示下載; 而關於修改後的程式碼, 請點擊右下方的圖式下載.
|
|