在Java中,要获取MySQL存储过程的执行结果,可以使用JDBC(Java Database Connectivity)API。以下是一个简单的示例,展示了如何使用JDBC获取存储过程的执行结果:
get_user_info
的存储过程:DELIMITER //
CREATE PROCEDURE get_user_info(IN user_id INT)
BEGIN
SELECT * FROM users WHERE id = user_id;
END //
DELIMITER ;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.CallableStatement;
public class Main {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/your_database_name";
String username = "your_username";
String password = "your_password";
try {
// 1. 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 2. 建立数据库连接
Connection connection = DriverManager.getConnection(url, username, password);
// 3. 创建CallableStatement对象
CallableStatement callableStatement = connection.prepareCall("{call get_user_info(?)}");
// 4. 设置输入参数
callableStatement.setInt(1, 1); // 假设我们要查询id为1的用户
// 5. 执行存储过程
boolean hasResultSet = callableStatement.execute();
// 6. 获取结果集
if (hasResultSet) {
ResultSet resultSet = callableStatement.getResultSet();
while (resultSet.next()) {
System.out.println("ID: " + resultSet.getInt("id"));
System.out.println("Name: " + resultSet.getString("name"));
System.out.println("Email: " + resultSet.getString("email"));
}
}
// 7. 关闭资源
resultSet.close();
callableStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个示例中,我们首先加载了MySQL JDBC驱动程序,然后建立了与数据库的连接。接着,我们创建了一个CallableStatement
对象,用于调用存储过程。设置输入参数后,执行存储过程并获取结果集。最后,遍历结果集并输出查询结果。
注意:请将your_database_name
、your_username
和your_password
替换为实际的数据库连接信息。
相似问题