위 코드에서 DataSource타입의 ds객체를 @Autowired로
xml의 빈의 프로퍼티 속성으로 설정한 값들과 자동연결한다.
연결하기 위해서 @RunWith와 @ContextConfiguration를 같이 사용한다. JUnit4ClassRunner를 이용해서 테스트를 한다. JUnit4ClassRunner는 ApplicationContext의 ac를 자동으로 만들어 준다. 그리고 @ContextConfiguration으로 ac를 설정을 한다. @Test는 메서드 단위에 붙어서 단위 메서드를 테스트 할 때 사용한다. 이를 사용해서 메서드를 테스트해보면
다음과 같은 테스트 결과가 콘솔에 출력된다.
이제 스프링에서 제공하는 데이터베이스 연동기능을 사용해보자.
mysql workbench에서 다음과 같이 테이블을 생성하고
인텔리제이에서 이를 연동해보면
이와 같이 연동됨을 볼 수 있다.
인텔리제이 환경에서 다음과 같이 sql쿼리문으로 테이블을 생성할 수 있다.
자바코드로 데이터베이스에 데이터를 집어넣어 보자.
다음과 같이 sql구문을 직접 작성하여 실행할 수도 있지만 PreparedStatement를 이용하여 sql구문을 실행시켜 보자.
sql구문을 위와 같이 '?' 키워드로 이용해 작성한 후, setString메서드로 값을 넣는다. Birth와 같은 경우는 Date 타입이므로 setDate를 사용하고 java.sql.Date에 있는 메서드를 사용하므로 new 키워드로 객체를 생성해준다. 굳이 PreparedStatement를 사용하는 이유는 SQL Injection 공격을 효과적으로 방어할 수 있으며 성능향상이 목적이다. 마지막에 executeUpdate메서드는 insert, delete, update에 사용한다.
입력한대로 데이터가 잘 들어간 것을 볼 수 있다.