介紹
MySQL 存儲過程是一種預編譯的 SQL 語句的集合,是一種方便、靈活的存儲 SQL 程序,它就像一個函數,可以讓應用程序通過參數和參數類型調用,如同調用函數一樣。
示例存儲過程
假設我們有一個名為 add_student 的存儲過程。此存儲過程從表 student 中插入學生的信息。
DELIMITER $$
CREATE PROCEDURE add_student(IN name VARCHAR(50), IN age INT, IN sex VARCHAR(10))
BEGIN
INSERT INTO student(name, age, sex) VALUES(name, age, sex);
END $$
DELIMITER ;
Java 調用存儲過程
以下是在 Java 中調用存儲過程的示例代碼:
String callProcedure = "{call add_student(?,?,?)}";
try(Connection conn = DriverManager.getConnection(url, username, password);
CallableStatement cs = conn.prepareCall(callProcedure)) {
cs.setString(1, "張三");
cs.setInt(2, 20);
cs.setString(3, "男");
cs.execute();
} catch(SQLException e) {
e.printStackTrace();
}
在上面的示例代碼中,我們創建了一個名為 add_student 的存儲過程,然后在 Java 中通過 CallableStatement 調用它。在調用時,我們需要設置存儲過程中各參數的值。最后執行 cs.execute(),完成存儲過程的調用。