公司经常更换框架,好不容易写好的业务模型经常要推倒重来。
为此考虑将业务模型独立出来,不受框架的影响。
具体考虑如下:
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);
不知道是否合理,先练习练习