2024. 2. 9. 22:23ㆍ· BACK-END/└ Spring Boot
실행 환경 : DBeaver / Spring Tool Suite4
[ 스트링 프레임워크에서 데이터베이스 연동을 위한 컨트롤러 클래스 만들기 ]
프로젝트 생성 시 데이터베이스와 연동에 필요한 것들은 Spring Data JDBC와 Oracle Driver이다.
프로젝트의 [src/main/resources] - [application.properties] 파일 열기
해당 파일에 아래와 같은 코드 작성
# setting for spring boot
# database setting
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=db아이디
spring.datasource.password=db비밀번호
[ 변수로 데이터 가져오기 - 등록 컨트롤러 구현]
@RestController
public class PocketmonController {
//★DI, 의존성 주입★
@Autowired
private JdbcTemplate jdbcTemplate;
//등록페이지
@RequestMapping("/insert")
public String insert(
@RequestParam int userNo,
@RequestParam String userName,
@RequestParam String userType) {
String sql = "insert into user_info("
+ "user_no, user_name, user_type"
+ ") values(?, ?, ?)";
Object [] data = {userNo, userName, userType};
jdbcTemplate.update(sql, data);
return "사용자 등록 완료";
}
}
1. @RestController 어노테이션:
- 해당 클래스가 RESTful 웹 서비스의 컨트롤러임을 나타냅니다. RESTful 서비스는 HTTP를 통해 자원을 관리하는 아키텍처 스타일 중 하나입니다.
2. @Autowired 어노테이션:
- 의존성 주입(Dependency Injection)을 수행합니다. 코드에서는 `JdbcTemplate` 타입의 객체를 주입받고 있습니다. `JdbcTemplate`은 스프링에서 제공하는 JDBC 간소화 도구로, 데이터베이스 작업을 더 쉽게 수행할 수 있도록 도와줍니다.
3. JdbcTemplate 변수:
- `private JdbcTemplate jdbcTemplate;` 선언부에서 `JdbcTemplate` 객체를 주입받을 변수입니다. 이 변수를 통해 데이터베이스에 쿼리를 실행할 수 있습니다.
4. @RequestMapping("/insert") 어노테이션:
- "/insert" 경로로 들어오는 HTTP 요청을 처리하는 메서드임을 나타냅니다. 매핑해줍니다.
5. insert 메서드:
- `@RequestParam` 어노테이션을 사용하여 HTTP 요청 파라미터를 메서드의 인자로 받습니다. 즉, "userNo", "userName", "userType" 파라미터를 받아옵니다.
- 받아온 파라미터들을 사용하여 `user_info` 테이블에 데이터를 삽입하는 SQL 쿼리를 정의합니다.
- `jdbcTemplate.update(sql, data);` 코드를 통해 SQL 쿼리를 실행하여 데이터를 데이터베이스에 삽입합니다.
- 메서드는 "사용자 등록 완료" 문자열을 반환합니다.
이 코드의 핵심은 사용자의 요청을 받아 데이터베이스에 데이터를 삽입하는 기능을 수행하는 것입니다. 주로 웹 애플리케이션에서 사용자 등록과 같은 데이터 조작 작업을 처리하는 데 사용될 수 있습니다.
이후 localhost:8080/insert?userNo=1&userName=테스트&userType=테스트
를 실행하면 "사용자 등록 완료"가 페이지에 등록되고, 데이터베이스에 데이터가 들어온 것을 확인할 수 있다.
개인 공부 기록용입니다:)
Chat GPT와 함께!
'· BACK-END > └ Spring Boot' 카테고리의 다른 글
[ Spring ] @Controller와 @RestController의 차이 (0) | 2024.02.12 |
---|---|
[ Spring ] @Repository / @Service / @Controller (0) | 2024.02.11 |
[ Spring Boot ] 프로젝트 실행 오류 : java.lang.ClassNotFoundException: (0) | 2024.02.08 |
[ Spring / Java ] 변수 값을 파라미터로 입력 받아 출력하기 (2) | 2024.02.01 |
[ Spring Boot ] 스프링(Spring) 이해 및 프로젝트 생성 (0) | 2024.01.30 |