增加、修改和刪除是單表操作,有Access已經夠用,但是對於數據庫有大量的多表查詢。因此需要建立一種機制,避免直接寫sql,通過設置參數的方式,定義對象,然後生成sql。
由於涉及多表,而且可能包含子查詢,因此想封裝好是一個十分麻煩的事情,但是可以根據自己的情況,逐步完善。
應該具有的方法:
/**
* 增加表
* 不能在增加第一個表的時候使用
* @param flag 連接類型,可以是空格/left/right/inner
* @param inName 輸入名/可以是查詢對象
* @param outName 輸出名
* @param where 連接條件
* @throws Exception
*/
public void addQryTable(String flag,Object inName,String outName,String where) throws Exception;
/**
* 增加字段,多表查詢時使用
* @param table 表的表名
* @param tableAlias 表的別名
* @param type 類型
* @param inName 輸入串,不允許加表名
* @param outName 輸出串,不允許加表名
* @throws Exception
*/
public void addQryField(String table,String tableAlias,int type, String inName, String outName) throws Exception;
public void setOrderBy(String orderby);
public String getGroupBy();
public void setDistinct(boolean distinct);
public RetInfo query(DataSource ds) throws Exception;
當然,根據自己的情況可以增加一些其它方法,比如where的條件、數據庫名(特殊情況需要)等。
如果你還有精力,甚至可以實現查詢結果的讀取模式,因爲查詢可能有多種讀取方式,比如讀指定頁;或者整批數據(一個類別有多少讀多少)。