* DataSource
@Bean
@ConditionalOnSingleCandidate(DataSource.class)
@ConditionalOnMissingBean
JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
@ConditionalOnSingleCandidate(DataSource.class)
@ConditionalOnMissingBean
JdbcTransactionManager jdbcTransactionManager(DataSource dataSource) {
return new JdbcTransactionManager(dataSource);
}
@ConditionalOnSingleCandidate(DataSource.class)
@ConditionalOnMissingBean
JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
@ConditionalOnSingleCandidate(DataSource.class)
@ConditionalOnMissingBean
JdbcTransactionManager jdbcTransactionManager(DataSource dataSource) {
return new JdbcTransactionManager(dataSource);
}
jdbcTemplate 을 이용한 DB접근 방식
@Repository
public class HelloRepositoryJdbc implements HelloRepository {
private final JdbcTemplate jdbcTemplate;
public HelloRepositoryJdbc(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public Hello findHello(String name) {
return jdbcTemplate.queryForObject("select * from hello where name = '" + name + "'",
(rs, rowNum) -> new Hello(
rs.getString("name"), rs.getInt("count")
));
}
@Override
public void increaseCount(String name) {
Hello hello = findHello(name);
if (hello == null) jdbcTemplate.update("insert into hello values(?,?)", name, 1);
else jdbcTemplate.update("update hello set count = ? where name = ?", hello.getCount() + 1, name);
}
}
public class HelloRepositoryJdbc implements HelloRepository {
private final JdbcTemplate jdbcTemplate;
public HelloRepositoryJdbc(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public Hello findHello(String name) {
return jdbcTemplate.queryForObject("select * from hello where name = '" + name + "'",
(rs, rowNum) -> new Hello(
rs.getString("name"), rs.getInt("count")
));
}
@Override
public void increaseCount(String name) {
Hello hello = findHello(name);
if (hello == null) jdbcTemplate.update("insert into hello values(?,?)", name, 1);
else jdbcTemplate.update("update hello set count = ? where name = ?", hello.getCount() + 1, name);
}
}
'Spring Boot' 카테고리의 다른 글
인프런_토비의 스프링부트_정리본_20230606 (0) | 2023.06.06 |
---|---|
스프링부트학습_20230604_2 (0) | 2023.06.04 |
20230528_스프링부트학습 (0) | 2023.05.28 |
20230526_스프링부트 학습 (0) | 2023.05.26 |
20230521_스프링부트 학습 (0) | 2023.05.21 |