[ Database / Spring ] 데이터베이스 연동하기 및 파라미터를 통해 데이터 삽입해보기

2024. 2. 9. 22:23· BACK-END/└ Spring Boot

실행 환경 : DBeaver / Spring Tool Suite4

 

[ 스트링 프레임워크에서 데이터베이스 연동을 위한 컨트롤러 클래스 만들기 ]

 

프로젝트 생성 시 데이터베이스와 연동에 필요한 것들은 Spring Data JDBCOracle 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와 함께!

728x90