게시판을 만들기 위해서는 DB가 필요하다.
mariaDB는 mySQL에서 나왔다.
기능은 비슷하지만, 마리아DB쪽이 개발이 활성화되어있다.
설치를 하게 되면 root 비밀번호를 입력하라고 나온다.
기억하기 쉬운 암호를 입력한다.
utf8 설정을 해야 한다.
HeidiSQL이 설치가 됐을 것임.
접속할 세션을 설정할 수 있음.
암호는 설치시 입력했던 암호 임력
비밀번호를 잘못임력하면 에러 나옴
기본적으로 테스트 데이터베이스가 설정이 되어있음.
이 계정으로 해도 상관은 없겠지만 실제로는 루트계정
실제 서버와 같이 설정을 해볼 것이다.
권한 전체 체크
연결 해제
새로 생성한 계정 입력
게시판을 위해 생성
ID가 게시판 번호가 될 것이다.
Java의 Long 자료형과 대응이 되는 BIGINT로 선택
id가 raw의 유일한 값
제목은 VARCHAR
50으로 유지
게시글 내용은 text로 지정
id의 기본 값이 유효하지 않다.
저장이 완료가 됨
JPA연동을 위해 용어를 알고 가도록 함.
클래스만 이용해서 데이터베이스 이용을 쉽게 접근할 수 있는 기술.
자바만 있는 것은 아니다. 여러가지 언어에서 사용할 수 있음.
자바에서 ORM을 어떤 식으로 구현을 해라
기술 스펙.
기본 값은 hibernate이다.
pom.xml에 JPA를 추가해줘야 한다.
springboot과 사용해야 하므로 이걸 선택
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.1.5</version>
</dependency>
버전 명시는 안해줘도 된다.
버전을 위에서 선언했기 때문이다.
오토임포트를 해놔서 저절로 임포트 된다.
mariaDB를 연결하기 전에 의존성 연결을 하나 더 할 것이다.
자바클라이언트는 springboot에서 관리하는 프로젝트가 아니기때문에 버전을 명시해라.
mariadb springboot을 검색해보면 데이터 소스 설정을 해야 한다.
많이 쓰이기 때문에 상위에 나옴.
예제 샘플을 맞게 수정해줘야 한다.
ddl-auto같은 경우는 서버가 기동됐을 때, 모델클래스를 정의할 것이다.
모델 클래스에 맞게, 테이블 생성, 삭제, 수정 등.
create-drop을 하면 서버를 기동할 때 마다 생성한 테이블들이 삭제가 됐다가 다시 생성이 됨.
테스트할 때, h2db 등 로직등을 테스트해볼 수 있음.
그러나 실제 환경에서는 위험함.
지움
직접 테이블을 작성하는 것이 안정적임.
model 패키지 추가
3개를 외부에서 꺼내 쓸 수 있도록 게터 세터 작성
그러나 롬복을 사용하므로 간단함.
자동완성 기능을 위해서 플러그인을 설치해야 함.
기본값은 AUTO이다.
아래 3개중에 한개로 설정이 됨.
데이터베이스에 따라서 설정이 됨. 가장 성능이 좋은건 SEQUENCE이다. 배치 업데이트 할 때 시퀀스를 미리 받음. 가장 빠름. 그러나 관리하기 힘듦. 일반적으로는 Identity.
TABLE은 값을 저장해서 필요할 때 마다 꺼내 씀.락도 걸리고 속도도 안좋음. 사실상 안 쓰는게 좋음.
레파지토리를 만들기 위해서 문서를 참고할 것임.
JPA 레파지토리를 상속 받아서 그 안에서 메소스 이름 등.
해당하는 데이터를 모두다 가져옴.
인터페이스만 규칙에 따라서 적으면 해당하는 데이터를 가져올 수가 있음.
레파지토리 패키지 생성
게시판에 어떤 데이터 값을 넘겨주고 싶다고 하면 파라메터에 모델을 추가하면 됐다.
autowired를 써야 인스턴스가 주입이 된다.
Model에 담으면 타임리프트에서 사용 가능하다.
리스트에 대한 데이터를 조작하기 위해서는 타임리프의 문법을 사용해야 한다.
사이즈를 구할 수 있는 문법이 나옴.
lists는 사전에 정의된 유틸리티이다. 그래서 # 기호로 사용할 수 있다.
boards를 넣으면 건수가 조회가 될 것이다.
행삽입
적용
건수가 잘 출력이 됨.
디버그 모드로 확인
선택한 부분에 실행이 멈춤
step over는 한줄씩 실행
Resume Program은 계속해서 진행.
f8을 누르면 한줄씩 실행이 됨.
데이터베이스의 값을 조회함
실제로 데이터를 뿌려주면 좋음.
부스트랩 테이블을 가져오면 됨.
필드나 내용을 수정해야 함.
행 하나만 있으면 되므로 삭제
타임리프 문법으로 루프를 돌릴 것임.
board로 들어가야 함
쓰기 버튼 추가
보통 쓰기 버튼이 오른쪽에 있음.
div로 감싸고 오른쪽으로 옮기기.
Spring Boot으로 웹 출시까지 7. JPA이용한 RESTful API 작성 (0) | 2023.12.04 |
---|---|
Spring Boot으로 웹 출시까지 #6. thymleaf에서 form 전송하기 (0) | 2023.11.06 |
Spring Boot으로 웹 출시까지 #4. thymeleaf를 이용해 레이아웃 만들기 (1) | 2023.11.02 |
Spring Boot으로 웹 출시까지 #3. thymeleaf 기본 익히기 (0) | 2023.11.01 |
Spring Boot으로 웹 출시까지 #2. thymeleaf를 이용한 화면 작성 (0) | 2023.11.01 |
댓글 영역