Spring Boot JDBC/실습

SpringBoot 와 DB 터널링 과 실습

qoeka 2024. 12. 19. 12:56

2024.12.18 - [Spring/실습] - git 과 GitHub 를 이용한 Spring Boot 사용법 실습

 

git 과 github 를 이용한 Spring Boot 사용법 실습

1.git 다운 내 컴퓨터는 window 각 컴퓨터에 맞는걸 다운 받고 디폴프 설정으로 마무리 다운 하면된다   1-1 git 설치 확인 설치 잘하면 crm에 git를 치면 이렇게 나온다 그럼 잘 설치된것이다! [git

tbghdus.tistory.com

 

2024.12.19 - [Spring/이론정리] - Spring Boot 기본 작동 원리 비유적 설명

 

Spring Boot 기본 작동 원리 비유적 설명

비유 데이터베이스(DB) 데이터가 실제로 저장되는 장소로 창고에 비유됨.DB는 단순한 창고가 아니라, 정리와 관리가 잘 된 스마트 창고입니다.스마트 창고(DB):원하는 물건을 빠르게 찾아줌(검

tbghdus.tistory.com

 

아래 페이지가 무엇이지 모르겠다면 맨 위 링크를 

이론을 알고싶음 두번째 링크를 들어가는 것을 추천드리겠다

그럼 위 내용을 숙지한 것으로 알고 시작하겠다.

 

 

 

 

spring initialize 에서 오른쪽 4개지를 다운 받는다. 그런데 해보니 오류가 많아서 JPA  보다는 JDBC가 지금 하는 실습은 오류가 적어 좀더 추천한다

 

만약 위 내용을 추가 하지 않았더라면

 

 

 

mvnrepository 가서 다운 받은 후에 다시 인텔리 제이가서 입력해주면된다.

 

이때 버전이 뜰건데 지워주는 게 좋다 그 후 동기화를 하면  라이브러를 쓸 수 있다.

 

라이브러리를 많이 알면 코드를 빠르게 쉽게 짤 수 있다. 

 

라이브러리에 오류가 나면 이런 식으로 필요한걸 다운 받아서 해결하면된다.

 

 

 

지난번과 마찬가지로 GitHub에서 repository 를 새로 만들어준뒤

 

 

 

spring initialize 에서 다운 받은 압축파일을 복붙해준 뒤 initialize를 실행시키는 것 까지가 이앞의 과정이 있다면

오늘은 spring initialize  에서 추가로 더받은 것들을 활용하여 MySQL을 연결하여 같이 사용하는  방법을 할 것이다.

 

 

 

 

처음에는 데이터 베이스랑 마이에스큐엘 정보를 입력하지 않아서 에러가 나는 것이기에 입력정보만 잘 입력해주면 되니깐 걱정하지 않아도된다

 

 

 

디비버도 실행 시키고 이제 연결을 하면된다

 

정말?

 

답은 NO이다 왜냐하면 

 

 

디비버도 보안상 바로 연결하면 문제가 생기니깐이다. 그렇기에 spring boot 도 터널링을 해줘야한다

 

 

 

먼저 application.properties 의 properties를 지운 후 yml을 써준다

 

 

그 후 위 와 같이 써준다 (연결을 위한 주소쓰는중 인거라 생각하면된다)

 

sd_user 는 디비버 에서 만든 데이터 베이스 테이블 명을 쓴 것이고 password는 내가 썻던 비번을 쓰는 것이다

 

show-SQL: true

이거 SQL 정확히 썻는지 확인하는 코드 

 

 

 

 

DB들어가서 정보를 확인해서 푸티설정을해서 ec2 터널링을 하자

 

 

 

여기서 정보가져가서

 

 

ec2 터널일을 위한 푸티 설정 후 

ec2-user 이라고 치고 새가 나오면 성공~!...인줄알았다..

 

그리고 인텔리제이가서 메인들어가서 확인했을때 돌아가면 되는데 나는 새는 나오는데 중단하는 사태가 일어났다. 그이유는 비번이 틀려서였다... 이게 하나라도 틀리면 이런 일이 발생하기에 하나하나 차근차근 실수없게 입력해주는게 가장 중요하다.

 

 그리고 됬다고 창을 닫지 말고 그냥 이상태로 하면된다.

 

[실습 프로젝트]

 

동일하게 만들어주고 일단 자바 처리시간은 빼고 하겠다.

일단 String 으로 집어 넣겠다.

 

created_at 을 DB에서 써는데 JAVA는 createdAt 이라고 쓴다고 이상하다 생각 안해도 된다 카멜 방식이라 어짜피 같은거다.

 

그리고 마찬가지도 DB에서 소문자 썻다고 걱정안해도된다. 알아서 자바에 클래스로 인식해서 잘한다.

 

 

 

@NoArgsConstructor 이런 식으로 @를 붙여서 하는 코드를 어노테이션이라고 한다

 

하지만 지난번에도 그랬지만 이번에도 무료버전이라 그런지 에러가 좀 잡아 그냥 평소하던데로 썻다

 

이런게 있다고 알아는 두자! 어노테이션을 쓰면 깔끔하고 에러도 줄일 수 있다

 

 

 

public class UserDao {
 데이터베이스에 쿼리할 SQL 을 실행하는 클래스CRUD 기능을 제공한다.
   
private  JdbcTemplate jdbcTemplate = new JdbcTemplate(); 은 SQL 문 실행기키는 클래스 생성이다


@Autowired // 자동으로 = new를 관리해달라고 하는거여서 쓰면 아래와 같이 써도 정상 작동 한다.
private  JdbcTemplate jdbcTemplate;(SQL과 연결 하겠습니다 라는 뜻)

 

 

 

 

 

컨트롤러에서 필요한  함수를 DAO에서 만들면되는 것이다

 

 

 DAO

인서트문이 필요하기에 디비버로 가겠다

 

 

정상작동이 되는지 확인을 한 후 에 복사해서 다시 DAO로 돌아가 "  "안에 넣어주면된다

 

 

values안 ()안 정보는 아직 미정이기에 ?표를 써준다 생각하면된다

 

jdbcTemplate.update()는 SQL 쿼리를 실행해 데이터를 변경하는 코드 인데

 

쉽게 말해 user 객체의 name과 email 값을 SQL 쿼리에 넣어 데이터베이스에 저장하거나 수정하는 코드라는 말이다.

 

 

Map 에 Object를 잘써야한다 자동완성된다고 그냥 누르면   Objects가 붙는다 이러면 오류난다 이거 가지고 고생꽤 했다

이거 놓지면 안된다ㅏ아아에러난다아

 

 

 

이제 포스트맨에 제인슨 정보를 입력한 뒤에 send를 누르면 정상 작동됨을 알 수 있다.

 

 

그리고 디비버에 가서 다시 한번 더 확인해보면

이렇게 들어갔을 정확히 알 수 있다.