#김영한 #스프링 #Spring #인프런 #인프런수업

본 포스팅은김영한
선생님의스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술
강의를 기반으로 작성되었습니다.
JdbcTemplate란?
JDBC를 좀더 쉽고 편리하게 사용할 수 있도록 도와주는 클래스이다
자바에서 데이터베이스에 접속한 뒤 SQL문을 실행하기 위한 API
순수 Jdbc와 동일한 환경설정을 하면 된다.
스프링 JdbcTemplate과 MyBatis 같은 라이브러리는
JDBC API에서 본 반복 코드를 대부분 제거해준다.
하지만 SQL은 직접 작성해야 한다.
실무에서도 자주 쓰는 방법이다
선언
Inject를 받을 수 있는건 아님으로 직접 선언해야한다
지금처럼 단일 인스턴스로 발생되는 경우 bean에 등록하지 않아도 된다
private final JdbcTemplate jdbcTemplate;
@Autowired
public JdbcTemplateMemberRepository(DataSource dataSource){
jdbcTemplate = new JdbcTemplate(dataSource);
}
save()메소드 코드
public Member save(Member member) {
SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
jdbcInsert.withTableName("member").usingGeneratedKeyColumns("id");
Map<String, Object> parameters = new HashMap<>();
parameters.put("name", member.getName());
Number key = jdbcInsert.executeAndReturnKey(new
MapSqlParameterSource(parameters));
member.setId(key.longValue());
return member;
}
이 코드는 SimpleJdbcInsert
를 사용하여 데이터베이스에 Member
객체를 저장하는 과정이다SimpleJdbcInsert
는 Spring에서 제공하는 클래스로,
JDBC를 사용하여 데이터베이스에 레코드를 삽입하는 작업을 간소화 한다
코드 설명
- SimpleJdbcInsert 인스턴스 생성
SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
- 여기서
SimpleJdbcInsert
객체는jdbcTemplate
를 사용하여 생성됩니다.jdbcTemplate
는 Spring의 JDBC 작업을 쉽게 해주는 도구입니다.
- 여기서
- 테이블 이름 설정
jdbcInsert.withTableName("member");
withTableName
메서드는SimpleJdbcInsert
가 삽입할 데이터베이스 테이블의 이름을 설정합니다. 여기서는"member"
테이블에 데이터를 삽입하도록 지정하고 있습니다.
- 자동 생성 키 컬럼 지정
jdbcInsert.usingGeneratedKeyColumns("id");
usingGeneratedKeyColumns
메서드는 데이터베이스에서 레코드 삽입 후 자동으로 생성되는 키(예: auto-increment ID)의 컬럼 이름을 지정합니다. 여기서는"id"
컬럼이 자동 생성 키임을 나타냅니다.
- 삽입할 데이터 준비
Map<String, Object> parameters = new HashMap<>();
parameters.put("name", member.getName());
Map
을 사용하여 삽입할 데이터를 준비합니다.Map
의 키는 데이터베이스 컬럼 이름과 일치해야 합니다.Member
객체의 이름을"name"
컬럼에 매핑하여 저장합니다.
- 데이터베이스에 삽입 및 키 반환
Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(parameters));
executeAndReturnKey
메서드는MapSqlParameterSource
를 사용하여 데이터베이스에 삽입을 실행하고, 자동 생성된 키를 반환합니다.MapSqlParameterSource
는Map
을 바탕으로 생성된 파라미터 소스입니다.- 이 메서드는 삽입된 레코드의 자동 생성된 키(
id
)를Number
타입으로 반환합니다.
- 반환된 키로 Member 객체 업데이트
member.setId(key.longValue());
- 삽입된 레코드의 자동 생성된 키를
Member
객체의 ID로 설정합니다.
- 삽입된 레코드의 자동 생성된 키를
- 수정된 Member 객체 반환:
return member;
- 삽입 작업 후 업데이트된
Member
객체를 반환합니다.
- 삽입 작업 후 업데이트된
주요 메서드 설명
- withTableName(String tableName): 삽입할 데이터베이스 테이블의 이름을 설정합니다.
- usingGeneratedKeyColumns(String… columnNames): 삽입된 레코드의 자동 생성된 키 컬럼 이름을 설정합니다. 이렇게 하면 삽입 후 해당 키를 검색하고 반환할 수 있습니다.
- MapSqlParameterSource:
Map
에 저장된 데이터를SqlParameterSource
로 변환하는 데 사용됩니다. 이는SimpleJdbcInsert
의executeAndReturnKey
메서드에 전달되어 실제 데이터베이스 삽입 작업에 사용됩니다. - executeAndReturnKey(SqlParameterSource parameterSource): 제공된
SqlParameterSource
를 사용하여 데이터베이스에 삽입을 실행하고, 자동 생성된 키를 반환합니다.
SimpleJdbcInsert
이번 JdbcTemplate코드에서 SimpleJdbcInsert
이라는 참조클래스를 사용했다
이 클래스는 JDBC코듈에서 제공하는 클래스이며
데이터베이스에 새 레코드를 삽입하는 작업을 단순화하고 더 효율적으로 만들어준다
특징 : 자동 생성된 키를 반환한다. 많은 데이터베이스 삽입 작업 후 자동 생성된 키를 반활할 수 있다
SimpleJdbcInsert
를 사용하면, SQL 쿼리를 작성할 필요 없이
간단하고 안전하게 데이터베이스에 데이터를 삽입할 수 있다.
새 레코드를 추가하는 작업이 자주 발생하는 애플리케이션에서 유용하다
`
'🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 > ⠀⠀⠀⠀ SᴛʀɪɴɢBᴏᴏᴛ' 카테고리의 다른 글
Spring Boot - AOP (0) | 2023.12.28 |
---|---|
Spring Boot - JPA (1) | 2023.12.27 |
Spring Boot - 스프링 통합 테스트 (0) | 2023.12.27 |
Spring Boot - 웹 MVC개발 :: 회원 웹 기능 조회와 DB접근 (0) | 2023.12.27 |
Spring Boot - 웹 MVC개발 :: 회원 가입 구현 (0) | 2023.12.27 |
#김영한 #스프링 #Spring #인프런 #인프런수업

본 포스팅은김영한
선생님의스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술
강의를 기반으로 작성되었습니다.
JdbcTemplate란?
JDBC를 좀더 쉽고 편리하게 사용할 수 있도록 도와주는 클래스이다
자바에서 데이터베이스에 접속한 뒤 SQL문을 실행하기 위한 API
순수 Jdbc와 동일한 환경설정을 하면 된다.
스프링 JdbcTemplate과 MyBatis 같은 라이브러리는
JDBC API에서 본 반복 코드를 대부분 제거해준다.
하지만 SQL은 직접 작성해야 한다.
실무에서도 자주 쓰는 방법이다
선언
Inject를 받을 수 있는건 아님으로 직접 선언해야한다
지금처럼 단일 인스턴스로 발생되는 경우 bean에 등록하지 않아도 된다
private final JdbcTemplate jdbcTemplate;
@Autowired
public JdbcTemplateMemberRepository(DataSource dataSource){
jdbcTemplate = new JdbcTemplate(dataSource);
}
save()메소드 코드
public Member save(Member member) {
SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
jdbcInsert.withTableName("member").usingGeneratedKeyColumns("id");
Map<String, Object> parameters = new HashMap<>();
parameters.put("name", member.getName());
Number key = jdbcInsert.executeAndReturnKey(new
MapSqlParameterSource(parameters));
member.setId(key.longValue());
return member;
}
이 코드는 SimpleJdbcInsert
를 사용하여 데이터베이스에 Member
객체를 저장하는 과정이다SimpleJdbcInsert
는 Spring에서 제공하는 클래스로,
JDBC를 사용하여 데이터베이스에 레코드를 삽입하는 작업을 간소화 한다
코드 설명
- SimpleJdbcInsert 인스턴스 생성
SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
- 여기서
SimpleJdbcInsert
객체는jdbcTemplate
를 사용하여 생성됩니다.jdbcTemplate
는 Spring의 JDBC 작업을 쉽게 해주는 도구입니다.
- 여기서
- 테이블 이름 설정
jdbcInsert.withTableName("member");
withTableName
메서드는SimpleJdbcInsert
가 삽입할 데이터베이스 테이블의 이름을 설정합니다. 여기서는"member"
테이블에 데이터를 삽입하도록 지정하고 있습니다.
- 자동 생성 키 컬럼 지정
jdbcInsert.usingGeneratedKeyColumns("id");
usingGeneratedKeyColumns
메서드는 데이터베이스에서 레코드 삽입 후 자동으로 생성되는 키(예: auto-increment ID)의 컬럼 이름을 지정합니다. 여기서는"id"
컬럼이 자동 생성 키임을 나타냅니다.
- 삽입할 데이터 준비
Map<String, Object> parameters = new HashMap<>();
parameters.put("name", member.getName());
Map
을 사용하여 삽입할 데이터를 준비합니다.Map
의 키는 데이터베이스 컬럼 이름과 일치해야 합니다.Member
객체의 이름을"name"
컬럼에 매핑하여 저장합니다.
- 데이터베이스에 삽입 및 키 반환
Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(parameters));
executeAndReturnKey
메서드는MapSqlParameterSource
를 사용하여 데이터베이스에 삽입을 실행하고, 자동 생성된 키를 반환합니다.MapSqlParameterSource
는Map
을 바탕으로 생성된 파라미터 소스입니다.- 이 메서드는 삽입된 레코드의 자동 생성된 키(
id
)를Number
타입으로 반환합니다.
- 반환된 키로 Member 객체 업데이트
member.setId(key.longValue());
- 삽입된 레코드의 자동 생성된 키를
Member
객체의 ID로 설정합니다.
- 삽입된 레코드의 자동 생성된 키를
- 수정된 Member 객체 반환:
return member;
- 삽입 작업 후 업데이트된
Member
객체를 반환합니다.
- 삽입 작업 후 업데이트된
주요 메서드 설명
- withTableName(String tableName): 삽입할 데이터베이스 테이블의 이름을 설정합니다.
- usingGeneratedKeyColumns(String… columnNames): 삽입된 레코드의 자동 생성된 키 컬럼 이름을 설정합니다. 이렇게 하면 삽입 후 해당 키를 검색하고 반환할 수 있습니다.
- MapSqlParameterSource:
Map
에 저장된 데이터를SqlParameterSource
로 변환하는 데 사용됩니다. 이는SimpleJdbcInsert
의executeAndReturnKey
메서드에 전달되어 실제 데이터베이스 삽입 작업에 사용됩니다. - executeAndReturnKey(SqlParameterSource parameterSource): 제공된
SqlParameterSource
를 사용하여 데이터베이스에 삽입을 실행하고, 자동 생성된 키를 반환합니다.
SimpleJdbcInsert
이번 JdbcTemplate코드에서 SimpleJdbcInsert
이라는 참조클래스를 사용했다
이 클래스는 JDBC코듈에서 제공하는 클래스이며
데이터베이스에 새 레코드를 삽입하는 작업을 단순화하고 더 효율적으로 만들어준다
특징 : 자동 생성된 키를 반환한다. 많은 데이터베이스 삽입 작업 후 자동 생성된 키를 반활할 수 있다
SimpleJdbcInsert
를 사용하면, SQL 쿼리를 작성할 필요 없이
간단하고 안전하게 데이터베이스에 데이터를 삽입할 수 있다.
새 레코드를 추가하는 작업이 자주 발생하는 애플리케이션에서 유용하다
`
'🌱 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 > ⠀⠀⠀⠀ SᴛʀɪɴɢBᴏᴏᴛ' 카테고리의 다른 글
Spring Boot - AOP (0) | 2023.12.28 |
---|---|
Spring Boot - JPA (1) | 2023.12.27 |
Spring Boot - 스프링 통합 테스트 (0) | 2023.12.27 |
Spring Boot - 웹 MVC개발 :: 회원 웹 기능 조회와 DB접근 (0) | 2023.12.27 |
Spring Boot - 웹 MVC개발 :: 회원 가입 구현 (0) | 2023.12.27 |