java stringbuffer 比较_Java的String和StringBuffer的比较

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 毫秒。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值