스프링부트 mysql 프로시저를 이용한 데이터 주고받는 법
2023. 6. 22. 17:45ㆍ코딩
스프링 부트에서 MySQL 프로시저를 사용하여 데이터를 주고받으려면 다음 단계를 따르면 됩니다.
1. 프로시저 생성
먼저, MySQL 서버에서 프로시저를 생성해야 합니다. 프로시저는 저장 프로시저와 사용자 정의 함수로 나뉩니다. 저장 프로시저는 데이터베이스에서 특정 작업을 수행하는 일종의 서버 측 스크립트이며, 반환값이 없습니다. 사용자 정의 함수는 값이 반환됩니다.
프로시저를 생성하려면 MySQL 콘솔 또는 MySQL 워크벤치와 같은 MySQL 클라이언트를 사용하여 다음과 같은 SQL 문을 실행합니다.
CREATE PROCEDURE `my_proc`(IN id INT, OUT name VARCHAR(255))
BEGIN
SELECT user_name INTO name FROM users WHERE user_id = id;
END
2. 스프링부트 프로젝트에 데이터베이스 연결
스프링 부트 프로젝트에서는 MySQL 데이터베이스에 연결하는 방법이 여러 가지가 있습니다. 대표적으로는 JDBC Template을 이용한 방법과 JPA를 이용한 방법이 있습니다.
3. 프로시저 호출
프로시저를 호출하려면 스프링 부트 프로젝트에서 JDBC Template을 사용하여 데이터베이스에 연결하고, CallableStatement 클래스를 사용하여 프로시저를 호출합니다.
@Autowired
private JdbcTemplate jdbcTemplate;
public String getUserById(int id) {
String userName = "";
try {
Connection conn = jdbcTemplate.getDataSource().getConnection();
CallableStatement stmt = conn.prepareCall("{call my_proc(?, ?)}");
stmt.setInt(1, id);
stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
stmt.execute();
userName = stmt.getString(2);
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return userName;
}
위 코드는 JDBC Template을 이용하여 MySQL 데이터베이스에 연결하고, my_proc 프로시저를 호출하여 사용자 이름을 반환하는 메서드입니다.
이와 같은 방법으로 스프링 부트에서 MySQL 프로시저를 사용하여 데이터를 주고받을 수 있습니다.