Для вызова хранимой процедуры в JDBC используется интерфейс
CallableStatement.🚩Этапы вызова
1⃣Установка соединения
Connection connection = DriverManager.getConnection(url, username, password);
2⃣Создание
CallableStatementCallableStatement cstmt = connection.prepareCall("{call myStoredProc(?)}");3⃣Установка параметров (если есть)
cstmt.setInt(1, 1); // Установка значения первого параметра
4⃣Выполнение вызова
ResultSet rs = cstmt.executeQuery();
5⃣Обработка результатов
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}6⃣Закрытие ресурсов
rs.close();
cstmt.close();
connection.close();
🚩Пример полного кода
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class CallStoredProcExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "myusername";
String password = "mypassword";
try {
Connection connection = DriverManager.getConnection(url, username, password);
// Вызов хранимой процедуры
CallableStatement cstmt = connection.prepareCall("{call myStoredProc(?)}");
cstmt.setInt(1, 1);
// Выполнение и обработка результатов
ResultSet rs = cstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
// Закрытие ресурсов
rs.close();
cstmt.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Ставь 👍 и забирай 📚 Базу знаний