210522-0523 토-일 TIL

bongf·2021년 5월 22일
0

TIL

목록 보기
38/43

✔ Done

  • 호눅스 JDBC template 수업 복습
  • 호눅스 수업 자료 및 김영한님 무료강의 참고하여 JDBC template 학습
    • Jdbc template 기본 사용법에 대해서 알게되었다.
  • 프로젝트
    • Jdbc template 적용해서 findById 구현

📂 Feeling

Good

Bad


🗒 Learned

1 gitignore에 파일 추가하기

1.1) 문제 : build 폴더 내 파일을 git이 추척해서 매번 커밋 추가

  • build 폴더 내 파일이 변경될 때마다 커밋해줘야 하는 문제 발생

1.2) 해결 : gitignore에 build 폴더 추가

  • gitignore 폴더에 build 폴더 추가

1.3) 다시 문제 : 이미 트래킹 되고 있는 build 내 파일들

  • git에서 이미 트래킹 되고 있던 build 폴더 내 파일들이 없어지지 않는다.

1.4) 해결 : 캐시날리기

  • 캐시를 날린다.
git rm --cached build/ -r 

2. JDBC Template

2.1) datasource 자동 주입

  • dataSource에 대한 별도의 설정 없이 DAO에 jdbcTemplate을 넣어주면 자동으로 applicaion.properties에 있는 dataSource 관련 정보들을 불러와 로드 해주었다.
  • 참고한 블로그를 보고 자동 주입해준다는 것을 이해했다.

2.2) findById 할시에 jdbcTemplate.query() vs jdbcTemplate.queryForObject()

  • 처음에는 ~.qeury()를 이용해서 한 개를 찾아 줬는데 그렇다면 값이 없을 경우 예외 처리를 해줘야 할 것 같았다.
  • 결과를 optional로 반환하고 싶어 방법이 없나 찾아봤는데 김영한님의 스프링강의 를 보고 반환 방법을 찾았다.
  • jdbcTemplate.query() 는 List를 반환하는데 이 리스트를 stream으로 변환하고 findAny() 하면 없을시에 optional로 반환 가능하다
 public Optional<Booking> findById(Long id) {
        List<Booking> result = jdbcTemplate.query("select * from booking where id = ?",
                bookingRowMapper(), id);
        return result.stream().findAny();
    }

3. 오류 해결

3.1) 문제 : 삭제한 컨트롤러는 찾으면서 run 되지 않는 상황

  • 컨트롤러를 하나 삭제했는데 run 할 때마다 삭제한 컨트롤러가 없다고 계속 에러가 났다.

3.2) 해결 : gradle clean시키기

./gradlew clean 
profile
spring, java학습

0개의 댓글