菜鸟问题:数据库连接
public boolean getMissionSendListSplitBySearch(Page page,
MissionSendSearch missionsendsearch) {
ArrayList arraylist;
int i;
int j;
StringBuffer stringbuffer1;
StringBuffer stringbuffer2;
CommonDAO commondao;
arraylist = new ArrayList();
i = 0;
j = 0;
if (page == null)
return false;
if (page.getPageSize() <= 0)
page.setPageSize(10);
if (page.getPageNo() <= 0)
page.setPageNo(1);
i = page.getPageSize();
j = page.getPageNo();
StringBuffer stringbuffer = getSqlwherBySearch(missionsendsearch);
String s = getOrderSqlBySearch(missionsendsearch);
stringbuffer1 = new StringBuffer(" select * from " + tableName
+ " where 1=1 " + stringbuffer + " " + s);
stringbuffer2 = new StringBuffer("select count(*) from " + tableName
+ " where 1=1 " + stringbuffer);
logger.warn("---sql:getMissionSendListSplit---" + stringbuffer1);
logger.warn("---countSql:getMissionSendListSplit---" + stringbuffer2);
commondao = null;
try {
commondao = new CommonDAO(jndi);
rowNum = PageDiv.getCount(stringbuffer2.toString(), commondao);
page.setPageInfo(rowNum, i);
ResultSet resultset = PageDiv.getResultSet(j, i, rowNum, stringbuffer1
.toString(), commondao);
for (int k = 0; k < i && resultset.next(); k++)
arraylist.add(readDataFromRs(resultset));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
commondao.destroy();
}
page.setList(arraylist);
return true;
}
在for循环里readDataFromRs()方法
private MissionSend readDataFromRs(ResultSet resultset) throws SQLException {
MissionSend missionsend = new MissionSend();
UserMgr usermgr = new UserMgr();
WorkPlanInfoMgr workplaninfomgr = new WorkPlanInfoMgr();
WorkPlanInfo workplaninfo = new WorkPlanInfo();
Object obj = null;
//引去一些
return missionsend;
}
这里的usermgr 和workplaninfomgr 都会再次连接数据库
问:怎么写一开始getMissionSendListSplitBySearch()方法,让它只连接一次数据库?