728x90
0.JDBC란
SQL을 실행하여 결과를 처리할 수 있도록 해주는 자바 표준 API이다.
주로 JPA 로 고수준으로 사용하긴하지만 JPA 내부도 결국 JDBC로 구현되어 있기 때문에 이번기회에 한번 사용해 보았다.
DriverManager를 통해서 DB연결을 한다.
spring.datasource.driver-class-name으로 JDBC 드라이버 클래스를 때문에 DB연결을 위해 설정해줘야하는데
mySQL의 경우 com.mysql.cj.jdbc.Driver이다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/bcsd?serverTimezone=Asia/Seoul
username:
password:
driver-class-name: com.mysql.cj.jdbc.Driver
1.의존성
JDBC의 의존성은 다음을 추가하면 사용할수있다.
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
2.jdbcTemplate
JDBC를 사용하기 위해 제공되는 클래스이다. Spring JDBC 모듈에 포함되어있다.
@Autowired
private JdbcTemplate jdbcTemplate;
query: 여러 행 조회
queryForObject: 단일 행 조회
update: INSERT, UPDATE, DELETE 수행
주로 이 3개의 메서드들을 사용하며 매개변수는 다음과같다.
jdbcTemplate.queryForObject(sql, RowMapper, 인자들...);
RowMapper은 SQL로 얻은 결과값을 개체로 바꾸기 위해 사용한다.
다음처럼 sql, RowMapper, 인자... 들을 통해 DB에서 원하는 데이터를 얻어올수있다.
public Optional<Member> findById(Long id) {
String sql = "SELECT id, name, email, password FROM member WHERE id = ?";
List<Member> members = jdbcTemplate.query(sql, memberRowMapper(), id);
return members.stream().findFirst();
}
private RowMapper<Member> memberRowMapper() {
return (rs, rowNum) -> new Member(
rs.getLong("id"),
rs.getString("name"),
rs.getString("email"),
rs.getString("password")
);
}
728x90
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot] DI, IOC, Bean 에 대해 (0) | 2025.05.20 |
---|---|
[SpringBoot] MySQL springBoot 연결하기 (0) | 2025.05.14 |
[SpringBoot] N+1 문제란, 지연로딩, 즉시로딩 (0) | 2025.05.11 |
728x90

0.JDBC란
SQL을 실행하여 결과를 처리할 수 있도록 해주는 자바 표준 API이다.
주로 JPA 로 고수준으로 사용하긴하지만 JPA 내부도 결국 JDBC로 구현되어 있기 때문에 이번기회에 한번 사용해 보았다.
DriverManager를 통해서 DB연결을 한다.
spring.datasource.driver-class-name으로 JDBC 드라이버 클래스를 때문에 DB연결을 위해 설정해줘야하는데
mySQL의 경우 com.mysql.cj.jdbc.Driver이다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/bcsd?serverTimezone=Asia/Seoul
username:
password:
driver-class-name: com.mysql.cj.jdbc.Driver
1.의존성
JDBC의 의존성은 다음을 추가하면 사용할수있다.
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
2.jdbcTemplate
JDBC를 사용하기 위해 제공되는 클래스이다. Spring JDBC 모듈에 포함되어있다.
@Autowired
private JdbcTemplate jdbcTemplate;
query: 여러 행 조회
queryForObject: 단일 행 조회
update: INSERT, UPDATE, DELETE 수행
주로 이 3개의 메서드들을 사용하며 매개변수는 다음과같다.
jdbcTemplate.queryForObject(sql, RowMapper, 인자들...);
RowMapper은 SQL로 얻은 결과값을 개체로 바꾸기 위해 사용한다.
다음처럼 sql, RowMapper, 인자... 들을 통해 DB에서 원하는 데이터를 얻어올수있다.
public Optional<Member> findById(Long id) {
String sql = "SELECT id, name, email, password FROM member WHERE id = ?";
List<Member> members = jdbcTemplate.query(sql, memberRowMapper(), id);
return members.stream().findFirst();
}
private RowMapper<Member> memberRowMapper() {
return (rs, rowNum) -> new Member(
rs.getLong("id"),
rs.getString("name"),
rs.getString("email"),
rs.getString("password")
);
}
728x90
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot] DI, IOC, Bean 에 대해 (0) | 2025.05.20 |
---|---|
[SpringBoot] MySQL springBoot 연결하기 (0) | 2025.05.14 |
[SpringBoot] N+1 문제란, 지연로딩, 즉시로딩 (0) | 2025.05.11 |