자바 프로그램에서 SQL문을 실행하여 데이터를 관리하기 위한 JAVA API

  1. Spring JDBC 모듈 추가하기 : DB 사용하려는거지 Spring 설정 잡아

**application.properties** → datasource setting 해주기 !!

: url, username, password, driver-class-name 추가.

  1. SpringJdbc 클래스 사용
// @추가 + final = 생성자 자동 생성, DB 주입 완료 !
@Component
@RequiredArgsConstructor
public class SpringJdbc {
   // 스프링에서 만들어 놓은 DB 처리 템플릿 !
   private final JdbcTemplate template;  // CRUD 편해짐

   // INSERT : Person 클래스에 삽입하는 save 기능
   public void save(Person person) { // Person 클래스 생성 !
       
       // 1. sql문 작성 
       String sql = "INSERT INTO tbl_person VALUES (?, ?, ?)";
       // 2. ? ? ? 삽입할 값 채워주기
       template.update(sql, person.getId(), person.getPersonName(), person.getPersonAge());;
   
   }
   
   // DELETE
   public boolean delete(long id) {  // 파라미터 타입 같게 잘 넣기 !
      String sql = "DELETE FROM tbl_person WHERE id = ?";
      int result = template.update(sql, id);
      return result == 1;  // true
   }

}
// Person 클래스
@Getter @Setter @ToString
@EqualsAndHashCode
@NoArgsConstrouctor
@AllArgsConstrouctor
public class Person {
  private long id;   // mariaDB에 만들어둔 컬럼명들 !
  private String personName;
  private int personAge;
  
}

만들어둔 기능이 잘 돌아가는지 테스트 클래스 세팅

: public 붙이기 X / 테스트할 클래스를 필드로 넣고 주입하기 !

@SpringBootTest
class SpringJdbcTest {

   // 테스트할 클래스 필드 !
   @AutoWired
   SpringJdbc springJdbc;
   
   // 단위 테스트 프레임워크 : JUnit5
   // 테스트 == 단언(arrsert)
   @Test
   @DisplayName("사람의 정보를 입력하면 데베에 반드시 저장되어야 한다.")
   void saveTest() {
     // given : 테스트에 주어질 데이터
     Person p = new Person(77, "칠칠이", 7);  // 삽입될 데이터
     // when : 테스트 상황
     int result = springJdbc.save(p);  // 테스트할 기능
     // then : 테스트 결과 단언(arrsert)
     assertEquals(1, result);  // 테스트 돌렸는데 테스트 결과가 1 과 동일한걸 단언해 !
   }
   
   @Test
   @DisplayName("아이디가 주어지면 해당 아이디의 사람정보가 데베로부터 삭제되어야 한다.")
   void deleteTest() {
     // 삭제할 데이터
     long id = 77;
     boolean result = springJdbc.delete(id);
     assertTrue(result);  // boolean 타입 테스트 시 true인 결과가 나올 걸 단언
   }

}