2.6 查詢

  增加、修改和刪除是單表操作,有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的條件、數據庫名(特殊情況需要)等。

  如果你還有精力,甚至可以實現查詢結果的讀取模式,因爲查詢可能有多種讀取方式,比如讀指定頁;或者整批數據(一個類別有多少讀多少)。

 

發佈了36 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章