Java的String和StringBuffer的比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wilsonyun/article/details/43565197

MySQL数据库有10441条记录,用Java将结果生成JSON格式返回给客户端,采用String和StringBuffer产生的效果有天渊之别,实现方式如下:


一、采用String方式

 public String getPreacceptByString() throws Exception{
  
  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
  Date d1 = new Date();
  System.out.println(sdf.format(d1));  
  String acceptList = "{acceptList:[";
  
  DBConnector dbc = new DBConnector();
  Connection conn = dbc.createConn();
  
  String sql = "select yslh, psbm, xmnr, ssje, zy, fl, ssdw, ssr, lxdh, xmlxwh,  jszlrq, ystgrq, ysjsr, tcysjsr, bz from preaccept order by yslh desc " ;
  PreparedStatement pstmt = conn.prepareStatement(sql);
  ResultSet rs = pstmt.executeQuery();
  
  while(rs.next()){
   acceptList = acceptList + "{yslh: '" + rs.getString("yslh") + "' ";
   acceptList = acceptList + ", psbm: '" + rs.getString("psbm") + "' ";
   acceptList = acceptList + ", xmnr: '" + rs.getString("xmnr") + "' ";
   acceptList = acceptList + ", ssje: " + rs.getDouble("ssje") + " ";
   acceptList = acceptList + ", zy: '" + rs.getString("zy") + "' ";
   acceptList = acceptList + ", fl: '" + rs.getString("fl") + "' ";
   acceptList = acceptList + ", ssdw: '" + rs.getString("ssdw") + "' ";
   acceptList = acceptList + ", ssr: '" + rs.getString("ssr") + "' ";
   acceptList = acceptList + ", lxdh: '" + rs.getString("lxdh") + "' ";
   acceptList = acceptList + ", xmlxwh: '" + rs.getString("xmlxwh") + "' ";
   acceptList = acceptList + ", jszlrq: '" + rs.getString("jszlrq") + "' ";
   acceptList = acceptList + ", ystgrq: '" + rs.getString("ystgrq") + "' ";
   acceptList = acceptList + ", ysjsr: '" + rs.getString("ysjsr") + "' ";
   acceptList = acceptList + ", tcysjsr: '" + rs.getString("tcysjsr") + "' ";
   acceptList = acceptList + ", bz: '" + rs.getString("bz") + "'},";
  }
  rs.close();
  
  sql = "select count(*) as total from preaccept ";
  pstmt = conn.prepareStatement(sql);
  rs = pstmt.executeQuery();
  int total = 0;
  while(rs.next()){
   total = rs.getInt("total");
  }
  
  if(acceptList.equals("{acceptList:[")){
   acceptList = "{acceptList:[]}";
  }else{
   acceptList = acceptList.substring(0 ,acceptList.length()-1) + "],total:" + total +"}";
  }
  
  rs.close();
  pstmt.close();
  conn.close();
  dbc.disConnect();

  Date d2 = new Date();
  long diff = d2.getTime() - d1.getTime();
  diff = diff /(1000);
  System.out.println(sdf.format(d1)+"-"+sdf.format(d2));
  System.out.println(diff);
  
  return acceptList;
 }

运行时间用了4分29秒


 二、采用StringBuffer方式

 public String getPreacceptByBuffer() throws Exception{
  
  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
  Date d1 = new Date();
  System.out.println(sdf.format(d1));  
  
  StringBuffer acceptList = new StringBuffer();
  acceptList.append("{acceptList:[");
  
  
  DBConnector dbc = new DBConnector();
  Connection conn = dbc.createConn();
  
  String sql = "select yslh, psbm, xmnr, ssje, zy, fl, ssdw, ssr, lxdh, xmlxwh,  jszlrq, ystgrq, ysjsr, tcysjsr, bz from preaccept order by yslh desc " ;
  PreparedStatement pstmt = conn.prepareStatement(sql);
  ResultSet rs = pstmt.executeQuery();
  
  while(rs.next()){
   acceptList.append("{yslh: '").append(rs.getString("yslh")).append("' ");
   acceptList.append(", psbm: '").append(rs.getString("psbm")).append("' ");
   acceptList.append(", xmnr: '").append(rs.getString("xmnr")).append("' ");
   acceptList.append(", ssje: ").append(rs.getDouble("ssje")).append(" ");
   acceptList.append(", zy: '").append(rs.getString("zy")).append("' ");
   acceptList.append(", fl: '").append(rs.getString("fl")).append("' ");
   acceptList.append(", ssdw: '").append(rs.getString("ssdw")).append("' ");
   acceptList.append(", ssr: '").append(rs.getString("ssr")).append("' ");
   acceptList.append(", lxdh: '").append(rs.getString("lxdh")).append("' ");
   acceptList.append(", xmlxwh: '").append(rs.getString("xmlxwh")).append("' ");
   acceptList.append(", jszlrq: '").append(rs.getString("jszlrq")).append("' ");
   acceptList.append(", ystgrq: '").append(rs.getString("ystgrq")).append("' ");
   acceptList.append(", ysjsr: '").append(rs.getString("ysjsr")).append("' ");
   acceptList.append(", tcysjsr: '").append(rs.getString("tcysjsr")).append("' ");
   acceptList.append(", bz: '").append(rs.getString("bz")).append("'},");
  }
  rs.close();
  
  sql = "select count(*) as total from preaccept ";
  pstmt = conn.prepareStatement(sql);
  rs = pstmt.executeQuery();
  int total = 0;
  while(rs.next()){
   total = rs.getInt("total");
  }
  
  String acceptList1  ="";
  if(acceptList.equals("{acceptList:[")){
   acceptList = new StringBuffer("{acceptList:[]}");
   acceptList1 = acceptList.toString();
  }else{
   acceptList1 = acceptList.substring(0 ,acceptList.length()-1) + "],total:" + total +"}";
  }
  
  rs.close();
  pstmt.close();
  conn.close();
  dbc.disConnect();

  Date d2 = new Date();
  long diff = d2.getTime() - d1.getTime();
  diff = diff /(1000);
  System.out.println(sdf.format(d1)+"-"+sdf.format(d2));
  System.out.println(diff);
  
  return acceptList1;
 }

运行时间用了 710 毫秒。




猜你喜欢

转载自blog.csdn.net/wilsonyun/article/details/43565197