java调用存储过程返回map组装List(含SqlServer存储过程)
- 格式:docx
- 大小:17.91 KB
- 文档页数:6
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
Map map_ep = new HashMap();
map_ep.put("account_id", 2);
map_ep.put("isSelectTwoStageProject", true);
List
SessionBean.getServiceLocator().getEngineeringPhaseService().getEngineeringPhaseList(map_ep).getData();
Map map_type = new HashMap();
StringBuilder sb = new StringBuilder();
sb.append("
for(EngineeringPhase engineeringPhase:engineeringPhaseList){
String ep_id = engineeringPhase.getEp_id();
sb.append("
sb.append("
sb.append("
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)+""+di_id+">");
}
}
//项目支付金额合计
sb.append("
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()))+""+dataItem.getId()+">");
}
//各项目累计合计
sb.append("
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();