
파일을 만들어준다.
데이터베이스를 연결 참고
https://pcm9881.tistory.com/130
[Spring] MySQL 연동 (JPA, application.properties)
# Spring DataSource (MySQL) spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/데이터베이스명?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=아이디 sp
pcm9881.tistory.com

package 형식을 이렇게 만들어 준다.

●application.properties
#db 연결구문을 넣어주면 자동으로 연결시켜준다.
# Spring DataSource (MySQL)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mh?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=1234
# Spring JPA select insert delete update 를 자동으로 만들어준다
spring.jpa.database=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.defer-datasource-initialization=true
# User 클래스... -> create table 시작 table 종료 하면 자동으로 사라진다.
spring.jpa.hibernate.ddl-auto=create-drop
# ddl create table 데이터 디파인 렝기지
# dml select insert delete update
spring.jpa.generate-ddl=true
# 생성되는 sql 구문 보여주겠다
spring.jpa.show-sql=true
# 예쁘게 보여주겠다.
spring.jpa.properties.hibernate.format_sql=true
# sql 구문을 날려줘서 데이터로 들어가게 해준다.
spring.sql.init.mode=always
Mysql 데이터 소스를 만들어 준다.
데이터베이스 명을 적어주면 그 데이터베이스로 들어 간다.
ddl Auto = create drop 는 실행하면 자동으로 테이블을 만들어 주고 종료하면 자동으로 테이블을 없애 준다.

●data.sql 파일로 만들어 준다.
INSERT INTO member (`id`, `email`, `username`) VALUES (1, 'aaa@naver.com', '홍길동');
INSERT INTO member (`id`, `email`, `username`) VALUES (2, 'bbb@naver.com', '박길동');
insert 값을 적어준다.
●member.Member
package com.mh.restapi02.member;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Entity // create table 을 날려준다.(jpa)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Member {
// 기본키를 무조건 설정 해줘야 한다.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String email;
}
@Data 는 getter setter 를 포함한 어노테이션
@Entity는 jpa에서 create table을 날려주는 어노테이션
이걸 쓸려면 무조건 기본키를 설정해줘야 한다.

이렇게 만들어 진다.
●member.MemberController
package com.mh.restapi02.member;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequiredArgsConstructor
public class MemberContorller {
//select .. insert..
private final MemberRepository memberRepository;
@GetMapping("member")
public List<Member> allMember(){
//select 구문이 실행이 된다.
List<Member> list = memberRepository.findAll();
System.out.println(list);
return list;
}
@PostMapping("member")
public Member memberSave(String username, String email){
System.out.println(username);
System.out.println(email);
//insert 구문 실행
Member member = Member.builder()
.username(username)
.email(email)
.build();
Member dbMember = memberRepository.save(member);
return dbMember;
}
@PutMapping("member")
public Member update(Long id, String username, String email){
Member member = Member.builder()
.id(id)
.username(username)
.email(email)
.build();
Member dbMember = memberRepository.save(member);
return dbMember;
}
@DeleteMapping("member")
public String delecte(Long id){
memberRepository.deleteById(id);
return "delecte id =" + id;
}
}
@GetMapping을 이용해서 select를 해준다.
List를 이용해서 return list 를 출력값으로 보여준다.
@PostMapping을 이용해서 insert를 해준다.
@Builder를 이용한다.
return dbMember를 이용해서 출력값을 해준다.
@PutMapping 을 이용해서 update를 해준다.
구조는 insert랑 똑같다.
@DeleteMapping을 이용해서 delete를 해준다.
id 칼럼만 없애면 그 행 다 없어진다.
memberRepository.deleteById(id)를 써서 id 칼럼을 없애준다.
●Main
package com.mh.restapi02;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import java.util.Arrays;
@SpringBootApplication
public class Restapi02Application {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Restapi02Application.class, args);
// Arrays.stream(context.getBeanDefinitionNames()).forEach(System.out::println);
}
}
●member.MemberRepository
package com.mh.restapi02.member;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface MemberRepository extends JpaRepository<Member,Long> {
//기본적인 CRUD가 생성된다.
}
interface를 이용해서 JpaRepository 안에 상속된다.(Member,Long)
●PostMan

구조는 이렇게 되고 get,post,put,del 을 이용해서 CRUD를 사용한다.

update는 이렇게 써준다.

delete는 이렇게 써준다
이렇게 하면 웹 화면에서도 데이터 베이스 에서도 값이 다 들어가게된다.
'spring boot' 카테고리의 다른 글
Spring boot 유효성 검사 / 복사 (0) | 2024.03.07 |
---|---|
Spring boot JPA(2), 포트 설정 (0) | 2024.03.06 |
spring boot 복습 (0) | 2024.03.04 |
spring boot 입출력 2 (0) | 2024.02.27 |
Spring boot(수업중 내용 입출력) (0) | 2024.02.26 |