[Spring] DB에 데이터 INSERT 하기

aljongjong·2022년 1월 15일
1

학원 복습일지

목록 보기
72/84

오늘은 DB에 데이터 INSERT 하는 법을 배웠다. 초기 설정들이 많고, 헷갈려서 반복 숙달이 필요할 것 같다.

1) 먼저 pom.xml에 jdbc 연결도구들을 등록해줘야한다. spring-jdbc은 pom.xml 상단에 위치한 spring-webmvc dependency와 형태가 같아서 webmvc를 jdbc로 바꿔줘서 dependency를 설정하고, dbcp는 maven repository에서 dbcp를 검색해서 적절한 버전을 선택해서 가지고 온다.

2) pom.xml에 dependency를 등록했으면 Maven dependencies에 jar가 추가된 것을 확인할 수 있다.

3) 이제 servlet-context.xml에서 bean 등록을 해준다. bean 등록은 Maven Dependencies에 존재하는, 필요한 클래스들의 객체를 생성해주는 것이다. jdbc에선 DriverManagerDataSource.class와 JdbcTemplate.class를 dbcp에선 BasicDataSource.class를 아래 이미지와 같이 등록해준다. bean property를 사용해 각 클래스에 name값으로 매개변수 파라미터를 받는 메소드에 value를 설정해주는 과정이며, dbcp의 maxTotal, maxIdle, maxWaitMillis는 데이터를 연결해주는 수많은 pool들에 제한을 줘서 db연결이 매끄럽도록 설정해주는 것이다. JdbcTemplate은 spring-jdbc의 id값을 참조하여 설정을 진행한다.

4) DB 연결에 필요한 도구 설정과 연결이 끝났으면 controller에서 DB에 데이터 인서트를 진행해본다. 멤버변수로 private JdbcTemplate을 추가해주는데, @Autowired를 붙여줌으로 Spring이 위에서 bean으로 등록한 JdbcTemplate을 Spring Container에서 찾아와서 객체를 채워준다. @Autowired를 생략하고 하단 메소드에서 변수 jdbcTemplate을 출력하면 null이 뜨는 것을 확인할 수 있고, @Autowired를 붙이면 spring container안의 JdbcTemplate의 주소 값을 반환하는 것을 알 수 있다. 이 과정을 DI(Dependency Injection : 의존성 주입)라고 한다.

5) 이제 간단한 메뉴 등록 페이지를 작성하고 Postmapping 메소드를 작성하여 매개변수 파라미터로 등록 페이지에서 보내주는 데이터의 name값을 설정해준다. 그리고 INSERT 쿼리문을 작성한 후, 생성된 JdbcTemplate 객체변수 jdbcTemplate의 메소드 update를 사용하여 INSERT 쿼리문과 사용자가 보낸 데이터를 담은 Object 배열 객체를 매개변수 파라미터로 설정한다.

6) 그리고 페이지에서 값을 입력해서 메소드로 보내고 미리 만들어둔 DB 테이블에 INSERT가 잘 진행되는지 확인한다.


0개의 댓글