1. jdbc 란
JDBC는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
2. jdbc 사용
-연결
private Connection getConnection() {
return DataSourceUtils.getConnection(dataSource);
}
.getConnection(datasource)
주어진 데이터 소스에서 JDBC 연결
- 사용
public Member save(Member member) {
String sql = "insert into member(name) values(?)";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
pstmt.setString(1, member.getName());
pstmt.executeUpdate();
rs = pstmt.getGeneratedKeys();
if (rs.next()) {
member.setId(rs.getLong(1));
} else {
throw new SQLException("id 조회 실패");
}
return member;
} catch (Exception e) {
throw new IllegalStateException(e);
} finally {
close(conn, pstmt, rs); }
}
PreparedStatement는 conn에 접속된 데이터 베이스를 통해 sql문과 매개변수를 사용해 데이터 처리를 할 수 있다.
3. JdbcTemplate 란
Spring Framework에서 JDBC 프로그래밍을 위해 JdbcTemplate 클래스를 제공하여 JdbcTemplate 클래스를 사용해 손쉽게 DB와 연동할 수 있도록 구현되어 있다.
4. jdbcTemplate 사용
- 연결
private final JdbcTemplate jdbcTemplate;
@Autowired
public JdbcTemplateMemberRepository(DataSource dataSource) {
jdbcTemplate = new JdbcTemplate(dataSource);
}
생성자를 통해 의존성만 주입해주면 된다.
- 사용
@Override
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;
}
JDBCTemplates는 내부에서 지원해주는 메서드를 통해서 데이터를 처리하기 때문에 좀 더 쉽고 간결하게 코드를 작성 할 수 있다.
'JAVA > Spring Boot' 카테고리의 다른 글
(디버깅)일대다 양방향 Response Error (0) | 2021.07.02 |
---|---|
(Spring Boot) AOP 동작원리 (1) | 2021.06.25 |
(Spring Boot)@GetMapping과 @PostMapping (0) | 2021.06.19 |
(Spring Boot) 테스트 코드 작성 방법 (0) | 2021.06.19 |
(Spring Boot) @ResponseBody 동작 원리 (0) | 2021.06.18 |