存储过程可以返回结果集吗?

我有一张名为employee的表,里面有他的id,姓名,电话号码。 我使用MySQL作为我的数据库。 我正在使用Java Swing。 我正在使用Java搜索员工表名称(我在Java页面中使用了like子句)。

现在我需要在存储过程中实现该function。 可能吗? 如果有可能的话,我们怎样才能在Java代码中使用结果集?

现在我编写了我的存储过程如下

 BEGIN SELECT * FROM employee where empName like '%su%' END 

示例代码将不胜感激..谢谢

首先,你应该编写为LIKE发送参数的msql程序,

 CREATE PROCEDURE simpleproc (param1 CHAR(20)) BEGIN SELECT * FROM employee where empName like param1; END 

然后从java程序中你可以使用这段代码来使用程序,

 CallableStatement cstmt = con.prepareCall("{call simpleproc(?)}"); cstmt.setString(1, "%su%"); ResultSet rs = cstmt.executeQuery(); 

执行存储过程时,如果它执行多个语句,它实际上可能会返回多个ResultSet对象和/或更新计数。

您使用CallableStatement执行proc,然后使用getResultSet()getUpdateCount()来获取正确的结果。 对于多个结果集/语句,您可以调用getMoreResults()来遍历存储过程的结果。

对于这样的简单情况,您只需要调用getResultSet()一次并处理它。

是的你可以。 存储过程甚至可以返回多个结果集。

 DELIMITER $$ -- recognized by mysql client but not phpmyadmin CREATE PROCEDURE prc_test() BEGIN SELECT * FROM employee WHERE empName LIKE '%su%'; END; $$ DELIMITER ; CALL prc_test(); -- to call