菜鸟问题:数据库连接

kkang521 2009-06-15 04:59:34
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()方法,让它只连接一次数据库?
...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
linmei19840721 2009-06-16
  • 打赏
  • 举报
回复
薪水 2009-06-16
  • 打赏
  • 举报
回复
顶~~~~~~
winit 2009-06-15
  • 打赏
  • 举报
回复
问题在
commondao = new CommonDAO(jndi);
rowNum = PageDiv.getCount(stringbuffer2.toString(), commondao);
page.setPageInfo(rowNum, i);
ResultSet resultset = PageDiv.getResultSet(j, i, rowNum, stringbuffer1
.toString(), commondao);
连接数据库可能在commondao里面,把连接改为单例或静态变量

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧