항목 | 기술 |
---|---|
DB | MySQL |
ORM | Spring Data JPA |
빌드 도구 | Gradle 또는 Maven |
핵심 구성요소 | application.properties , @Entity , @Repository , @Service , @Controller |
build.gradle
)dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.33'
implementation 'org.springframework.boot:spring-boot-starter-web'
}
Maven 사용하는 경우 알려주면 pom.xml로도 드릴 수 있어요.
application.properties
설정spring.application.name=gallery
spring.datasource.url=jdbc:mysql://localhost:3306/gallery?useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Seoul
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA 설정
spring.jpa.hibernate.ddl-auto=update # create, update, validate 등 가능
spring.jpa.show-sql=true # 콘솔에 SQL 출력
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
package com.example.gallery.domain;
import jakarta.persistence.*;
import lombok.*;
@Entity
@Table(name = "users")
@Getter @Setter @NoArgsConstructor @AllArgsConstructor @Builder
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String email;
}
package com.example.gallery.repository;
import com.example.gallery.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
// 기본 CRUD는 자동 제공
User findByUsername(String username); // 사용자 정의 쿼리도 가능
}
package com.example.gallery.service;
import com.example.gallery.domain.User;
import com.example.gallery.repository.UserRepository;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public List<User> findAll() {
return userRepository.findAll();
}
public User save(User user) {
return userRepository.save(user);
}
}