最近做项目遇到一个问题,由于数据库中的数据量有点大,如果丢到开发的代码里面去执行的话,会非常的慢,而且尤其是用tomcat发布的jsp应用,总是出现内存溢出不够的情况,因此就把这个功能写成存储过程放到服务器上去执行,返回要求是一个结果集,比如select * from tabel这个里面的所有数据。本来很简单的,但是还是在此做一下记录。
create procedure sp_test()
begin
select * from testdb;
end;
Java中调用:
String url = "jdbc:mysql://127.0.0.1:3306/test";
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conn = DriverManager.getConnection(url, "root","");
CallableStatement stmt = conn.prepareCall("{call xx()}");
stmt.execute();
ResultSet rs = (ResultSet)stmt.getResultSet();
while(rs.next()){
System.out.print (rs.getString(1));
System.out.print (" , ");
System.out.println (rs.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
}