我创建了一个Java Servlet,它从mySQL数据库获取查询结果并以XML格式打印。 问题是,它需要很长时间,大约三分钟来打印xml结果,而在我的PHP脚本中需要5秒钟。使用MySQL连接器的Java Servlet中的缓慢XML响应
我的servlet相关功能是: (运行查询,并在一个字符串变量返回的XML,那么,它打印的页面)
public String QueryResult(String query)
{
String retStr;
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection ("jdbc:mysql://"+this.host+":"+this.port+"/"+this.db, this.user, this.pass);
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(query);
ResultSetMetaData rsMetaData = rset.getMetaData();
retStr = "<Result>\n";
while (rset.next())
{
retStr += "\t<Item>\n";
for (int i=1;i<=rsMetaData.getColumnCount();i++)
{
retStr += "\t\t<"+rsMetaData.getColumnName(i)+">"+ rset.getString(i) + "</"+rsMetaData.getColumnName(i)+">\n";
}
retStr += "\t</Item>\n";
}
retStr += "</Result>\n";
stmt.close();
conn.close();
}
catch(Exception e)
{
return "<Result><Error>"+e.toString()+"</Error></Result>";
}
return retStr;
}
你知道这个方法的哪个部分花时间吗?它只是对executeQuery()的调用,还是构建结果的循环?此外,这种方法被调用一次或多次? – 2010-07-12 10:24:55