![[Spring-Error] H2 데이터베이스 쿼리 삽입 안 되는 문제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs9mjZ%2FbtslMWPyoK2%2FKePNzRla3PuFxv3GiFfKV0%2Fimg.png)
[Spring-Error] H2 데이터베이스 쿼리 삽입 안 되는 문제legacy/Spring2023. 6. 29. 00:35
Table of Contents
내가 겪은 문제
스프링에서 jdbc connection을 정상적으로 가져왔는데도 sql 삽입문이 처리가 되지 않는 문제가 발생했다.
해결
참 바보 같은 행동을 하고 있었다. insert문을 작성해놓고 select문처럼 사용하고 있었다.
insert문을 사용하였으니 executeQuery()가 아니라 executeUpdate()를 사용해야 한다.
기존 코드
@Slf4j
public class MemberRepository {
public Member save(Member member) throws SQLException {
String sql = "insert into member(member_id, money) values(?, ?)";
Connection conn = null;
PreparedStatement psmt = null;
try {
conn = DbConnectionUtil.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, member.getMember_id());
psmt.setInt(2, member.getMoney());
psmt.executeQuery(); // 문제 코드
return member;
} catch (SQLException ex) {
.. 생략
} finally {
.. 생략
}
return null;
}
.. 메서드 생략
}
수정 코드
@Slf4j
public class MemberRepository {
public Member save(Member member) throws SQLException {
String sql = "insert into member(member_id, money) values(?, ?)"; // 문제 지점
Connection conn = null;
PreparedStatement psmt = null;
try {
conn = DbConnectionUtil.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, member.getMember_id());
psmt.setInt(2, member.getMoney());
psmt.executeUpdate(); // 코드 수정
return member;
} catch (SQLException ex) {
.. 생략
} finally {
.. 생략
}
return null;
}
.. 메서드 생략
}
결론
insert, update, delete는 executeUpdate()
select는 executeQuery()
알맞게 사용하자.