目前這個專案使用的jsp+servlet+j**abean,沒有使用其它的框架。在處理資料庫的時候,多張表就對應多個dao,而每個dao都有增刪改查的方法,顯得很冗餘。於是寫了乙個commondao,其中包含了其他dao裡面共有的一些方法。然後讓其他的dao類繼承commondao,servlet中直接使用commondao中的相應方法。那麼這個時候遇到了乙個問題,怎樣判斷需要對哪張表執行相應的操作。這時可以從servlet向dao類傳入相應的sql,同時也需要判斷傳入的j**abean物件,因為需要向sql中賦值。那麼這個時候就需要使用泛型達到這一目的。
使用泛型時:
1public
class commondao
17else
if(t instanceof
person)
21else
if(t instanceof
department)
25stmt.executeupdate();
26 } catch
(sqlexception e) finally
31 }
對應的其他dao:
1public
class customerdaoextends commondao67
public
void
add(customer customer) catch
(sqlexception e) finally
36if(conn != null
) 39
}40 }
executestatement.setstatement(customer,stmt)**:
1//為customer表執行preparedstatement方法
2public
preparedstatement setstatement(customer customer, preparedstatement stmt) catch
(sqlexception e)
21return
stmt;
22 }
customerservlet的add方法:
1/*2* 功能:新增資料並返回到customer.jsp頁面3*/
這樣就很好的解決了**冗餘的問題,當然後面還可以再優化。
泛型的使用
unit unit1 inte ce uses winapi.windows,winapi.messages,system.sysutils,system.variants,system.classes,vcl.graphics,vcl.controls,vcl.forms,vcl.dialogs ...
泛型的使用
泛型是什麼,為什麼使用泛型 泛型是指宣告時不指定型別,使用時指定型別,用編譯時用來宣告型別,使用時指定型別。這就意味著意味著編寫的 可以被不同型別的物件所重用。在集合中如果使用object型別,那麼在使用過程中我們需要進行強制轉換型別,並且在編譯過程中不能夠進行型別轉換檢查異常。這樣就會容易在執行過...
泛型的使用
型別引數t 泛型的型別引數t可以看作是乙個佔位符,它不是一種型別,它僅代表了某種可能的型別。型別引數t可以在使用時用任何型別來代替。型別引數t的命名準則如下 使用描述性名稱命名泛型型別引數,除非單個字母名稱完全可以讓人了解它表示的含義,而描述性名稱不會有更多的意義。public inte ce is...