Spring - 13. Spring으로 DB다루기(TDD)

병호·2023년 8월 23일
0

Spring

목록 보기
13/16
post-custom-banner

TDD란?

Test Driven Development의 약자로 JUnit Test Framework를 이용해서 Test를 자동화 하면 테스트할 코드가 많아도 일괄적으로 한번에 돌려서 어떤 테스트가 실패하고 성공했는지를 알 수 있다.


위 코드에서 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에 사용한다.

입력한대로 데이터가 잘 들어간 것을 볼 수 있다.

profile
안녕하세요
post-custom-banner

0개의 댓글