Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 베주계수
- 자바 최대공약수
- Git사용법
- while과 two-pointer
- 자바 유클리드
- toLowerCase()
- 자바 최소공배수
- 모던자바
- 최대공약수와 최소공배수
- sql 데이터형 변환
- StringBuilder
- 스프링
- 프로그래머스 레벨1
- 유클리드호제법
- git 컨벤션
- 동일성과 동등성
- 최대공약수
- 스프링환경설정
- 스프링뼈대
- 자바 스트링
- addDoc
- string
- stringbuilder의 reverse()
- replaceAll()
- 최소공배수
- isuppercase()
- islowercase()
- ineer join
- string과 stringbuilder
- 래퍼타입
Archives
- Today
- Total
주노 님의 블로그
[Spirng] 7. Spring 데이터베이스 연동 - JDBCTemplate 본문
시작하기에 앞서
아래 내용은 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근기술에서 발췌한 내용입니다.
강의자료 일부를 발췌하는건 괜찮다고 하셨다.
무료강의로 지식을 공유해주신 김영한님께 다시한번 감사의 인사를 올리겠습니다
(_ _) (유료도 샀어요!)
JDBC 템플릿은 스프링 프레임워크에서 제공하는 데이터 액세스 기술로, JDBC의 복잡함과 반복적인 코드를 줄여준다.
jdbc템플릿을 이용한 레파지토리를 만들기위에 생성해준다
public class JdbcTemplateMemberRepository implements MemberRepository {
private JdbcTemplate jdbcTemplate;
//생성자가 하나면 autowired 제거 가능
public JdbcTemplateMemberRepository(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
jdbc템플릿을 사용하기위해 의존성을 주입받는다
생성자가 하나면 AutoWired를 제거 가능하다
@Override
public Optional<Member> findByName(String name) {
List<Member> result = jdbcTemplate.query("select * from member where name = ?", memberRowMapper(), name);
return result.stream().findAny();
}
private RowMapper <Member> memberRowMapper(){
return (rs, rowNum) -> {
Member member = new Member();
member.setId((rs.getLong("id")));
member.setName(rs.getString("name"));
return member;
};
}
name을 찾기위한 메서드와
쿼리 결과로 반환된 resultset에서 데이터를 읽어 객체로 반환하는 rowmapper를 구현해준다
회원 조회 메서드는 주어진 이름에 해당하는 회원을 찾기 위해 jdbc템플릿의 query 메서드를 사용한다. 매개변수는 sql쿼리문, 결과를 객체로 매핑할 rowmapper, 그리고 쿼리에 사용될 파라미터이다.
이 메서드는 rowmapper를 이용하여 결과를 자바 객체로 변환한다
SimpleJdbcInsert를 이용한 방법도 있다.
@Override
public Member save(Member member) {
// SimpleJdbcInsert를 사용하여 데이터베이스에 회원 정보를 삽입하고 ID를 생성합니다.
SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
jdbcInsert.withTableName("member").usingGeneratedKeyColumns("id");
// 회원 이름을 매개변수로 설정합니다.
Map<String, Object> parameters = new HashMap<>();
parameters.put("name", member.getName());
// 삽입 실행 후 생성된 키를 반환받아 Member 객체에 설정합니다.
Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(parameters));
member.setId(key.longValue());
return member;
}
강사님께서 document를 참조하면서 구현하면 쉽게 구현된다 하셨다
@Bean
public MemberRepository memberRepository()
{
// return new MemoryMemberRepository();
// return new JdbcMemberRepository(dataSource);
return new JdbcTemplateMemberRepository(dataSource);
}
그리고 spring config에서 리턴값만 바꿔주면 된다
그리고 이전 포스팅에서 만들어놨던 클래스로 테스트 해본다.
'공부 > Spring' 카테고리의 다른 글
[Spirng] 7. Spring 데이터베이스 연동 - 스프링 데이터 Jpa (0) | 2024.07.30 |
---|---|
[Spirng] 7. Spring 데이터베이스 연동 - JPA (0) | 2024.07.29 |
[Spirng] 7. Spring 데이터베이스 - 단위테스트 (JUNIT) (0) | 2024.07.29 |
[Spirng] 7. Spring 데이터베이스 연동 - JDBC를 통한 데이터베이스 연동 (0) | 2024.07.29 |
[Spirng] 7. Spring 데이터베이스 연동 - H2데이터베이스 설치 (0) | 2024.07.28 |