java调用存储过程返回map组装List(含SqlServer存储过程)

  • 格式:docx
  • 大小:17.91 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Action层

public ActionForward getProjectPayMoneyJsonByPayType(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

JiLiangZhiFuService jiLiangZhiFuService = this.getServiceLocator().getJiLiangZhiFuService();

int year = Integer.parseInt(request.getParameter("year"));

String data = jiLiangZhiFuService.getProjectPayMoneyJsonByPayType(year);

response.setContentType("text/xml");

response.getWriter().write(data);

response.getWriter().flush();

response.getWriter().close();

return null;

}

Service层

public String getProjectPayMoneyJsonByPayType(int year){

double allTotal = 0;

Map map = jiLiangZhiFuDao.getProjectPayMoneyByPayType(year);

List dataItemList = SessionBean.getServiceLocator().getDataItemService().getAllDataItemByTypeId("payType");

Map map_ep = new HashMap();

map_ep.put("account_id", 2);

map_ep.put("isSelectTwoStageProject", true);

List engineeringPhaseList =

SessionBean.getServiceLocator().getEngineeringPhaseService().getEngineeringPhaseList(map_ep).getData();

Map map_type = new HashMap();

StringBuilder sb = new StringBuilder();

sb.append(""+engineeringPhaseList.size()+"");

for(EngineeringPhase engineeringPhase:engineeringPhaseList){

String ep_id = engineeringPhase.getEp_id();

sb.append("");

sb.append(""+ep_id+"");

sb.append(""+engineeringPhase.getEp_name()+"");

for(DataItem dataItem:dataItemList){

String di_id = dataItem.getId();

String r_key = ep_id + "," + di_id;

if(map.containsKey(r_key)){

map_type.put(di_id, map_type.containsKey(di_id) ? (Double.parseDouble(map_type.get(di_id).toString()) + Double.parseDouble(map.get(r_key).toString())) : Double.parseDouble(map.get(r_key).toString()));

sb.append("<"+di_id+">"+map.get(r_key)+"");

}

}

//项目支付金额合计

sb.append(""+map.get(engineeringPhase.getEp_id())+"");

allTotal += Double.parseDouble(map.get(engineeringPhase.getEp_id()).toString());

sb.append("");

}

//某支付类别金额合计

sb.append("");

sb.append("");

sb.append("合计");

DecimalFormat df = new DecimalFormat("#.00");

for(DataItem dataItem:dataItemList){

sb.append("<"+dataItem.getId()+">"+String.format("%.2f", map_type.get(dataItem.getId()))+"");

}

//各项目累计合计

sb.append(""+String.format("%.2f", allTotal)+"");

sb.append("");

sb.append("");

return sb.toString();

}

Dao层

public Map getProjectPayMoneyByPayType(final int year) {

try {

return (Map)this.getHibernateTemplate().execute(

new HibernateCallback(){

public Object doInHibernate(Session session) throws HibernateException, SQLException {

Connection con = session.connection();

Statement stmt = con.createStatement();

CallableStatement cs = con.prepareCall("{call proc_records(?)}");

cs.setInt(1, year);

//ResultSet rs = stmt.executeQuery("{call proc_records}");

ResultSet rs = cs.executeQuery();