application.properties
#port 변경
server.port=8081
#thymleaf cashe false
spring.thymeleaf.cache=false
#자동 런
spring.devtools.restart.enabled=true
spring.devtools.livereload.enabled=true
spring.flyway.enabled=true
spring.flyway.locations=classpath:db/migration
#테스트 테이블 생성 (테스트할땐 create 테스트 끝나면 none)
spring.jpa.hibernate.ddl-auto=none
#데이터베이스 접속 정보
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:1521/xe
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.username=MYDB
spring.datasource.password=ORACLE
#JPA 쿼리 콘솔 출력
spring.jpa.properties.hibernate.show_sql=true
#출력 쿼리 포맷팅
spring.jpa.properties.hibernate.format_sql=true
#쿼리 실행시 물음표에 들어가는 파라미터 출력
logging.level.org.hibernate.type.descriptor.sql=trace
패키지 구성
constant - Role : 상수 모아둠
entity - Member : 테이블 연결 및 컬럼 매핑
repository - MemberRepository : DB작업 서비스를 생성
service - MemberServiceImpl: DB작업 서비스 구현
테이블 연결 및 컬럼 매핑
테이블 연결
@Entity
@Table(name = "테이블명")
PK 매핑
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
: PK 자동 생성 mySQL은 IDENTITY oracle은 AUTO
컬럼 매핑
@Column(name = "컬럼명")
상수
@Enumerated(EnumType.STRING)
Repository 서비스 메소드 생성
JpaRepository<entity클래스명, PK타입>를 상속해주는 인터페이스를 생성
자동으로 만들어지는 메소드
save() : 데이터 삽입
findAll() : 데이터 전체 조회
findAllById() : 해당 데이터 조회
delete() : 데이터 삭제
count() : 데이터 갯수
직접 쿼리를 만들 수도 있습니다!
Repository 서비스 메소드 구현