公司经常更换框架,好不容易写好的业务模型经常要推倒重来。
为此考虑将业务模型独立出来,不受框架的影响。
具体考虑如下:
1.接口定义
DBConnection.java
public interface DBConnection {
  PreparedStatement prepareStatement(String aSql);
 ....
  void free();
  void commit();
  void rollback();
}
DBContext.java
public interface DBContext {
  DBConnection newDBConnection();
}
2.模型实现
public class ActualFlow {
  DBContext dbContext=null;
  public ActualFlow() {
  }
  public void init(DBContext aContext){
    dbContext=aContext;
  }
  public int calculate(String aBranchId,String aYear,String aMonth,String aUserId){
    int iRtn=-1
    PreparedStatement objState=null;
    ResultSet objSet=null;
    DBConnection objCon=null;
    try {
      objCon=dbContext.newDBConnection();
      objState=objCon.prepareStatement("具体的sql语句");
      //业务模型操作......

    }
    catch (Exception ex) {
      ex.printStackTrace();
      iRtn=-1;
    }finally{
      if (objSet!=null) {
        try {
          objSet.close();//关闭结果集合
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }
      if (objState!=null) {
        try {
          objState.close();//关闭statement
        }
        catch (Exception ex1) {
          ex1.printStackTrace();
        }
      }
      if (objCon!=null) {
        objCon.free();//释放连接
      }
    }
    return iRtn;
  }
}
3.在具体的开发框架下面
   定义EAPDBContext 实现 DBContext
   如下方式复用模型:
      ActualFlow objActualFlow=new ActualFlow();
      objActualFlow.init(new EAPDBContext("actualFlow"));
      int i=objActualFlow.calculate(this.m_branchID,this.m_year,this.m_month);

不知道是否合理,先练习练习