|
在J2EE的架構藍圖中,Struts應是屬於Web層,在Web層中,基本上不應涉及資料存儲的邏輯,Web負責客戶端的請求轉發,並適當的將一些工作交給業務邏輯層,如果需要存取資料庫,則由業務邏輯層呼叫資料存儲層的物件來進行。 不過並不是每一個程式都要設計為三層式的架構,視您的需求而定,如果您只是想利用Struts的 MVC 職責分配,區隔程式碼與視圖元件,並且想要直接在Struts的元件中進行資料庫的存取,也沒有人會阻止您這麼作(通常這發生在您開發一個小型的程式時, 中大型程式的話,並不鼓勵這麼作)。 視您的需求而定,您可以直接在Struts中適當的元件中呼叫JDBC來完成您的資料庫存取。 您也許會需要連接池,您可以使用自己的連接池元件,然後透過 Plugin 介面 來掛上連接池並用以取得DataSource,例如: <plug-in className="onlyfun.caterpillar.MyConnectionPool">
<set-property property="configFile" value="/WEB-INF/conf/yourConnectionConfig.xml"/> </plug-in> 另一個方式是使用 Jakarta Commons DBCP 來取得DataSource,您可以在struts-config.xml中如下設定:
.... 然後您就可以在 Action 中使用getDataSource(request, "dataSource")來取得DataSource物件。 |
|