JdbcTemplate 사용 방법

greenTea·2023년 5월 8일
0

😎스프링에서는 데이터를 저장할 때 다양한 방법을 제공하는데 jdbctemplate은 그 중 하나로 보다 더 편하게 sql작업을 할 수 있게 도와준다.

jdbctemplate을 사용하려면 아래와 같은 과정이 필요하다.

1.dirver를 추가한다.

implementation 'org.springframework.boot:spring-boot-starter-jdbc'

build.gradle에 jdbc의존성을 추가한다. 그러면 알아서 자신이 필요한 것들을 가져온다.


2.datasource 등록

spring.datasource.url=
spring.datasource.name=
spring.datasource.password=

🫠datasource를 등록한다. 이 때 application.properties를 통해 등록하면 보다 더 편하게 사용할 수 있다.


3. jdbcTemplate 객체 생성

private final JdbcTemplate template;

public Repository(DataSource dataSource) {
	this.template = new JdbcTemplate(dataSource);
}

🤨datasourec가 자동 주입 되기 때문에 생성자를 통해 주입 해주면 된다. 이 때 jdbctemplate은 datasource가 필요하기 때문에 new JdbcTemplate를 통해 객체를 생성 해주고 datasource를 넘겨준다.


4. sql작성 및 실행

    public List<String> getNames() {
        String sql = "SELECT name FROM users";
        List<String> names = jdbcTemplate.queryForList(sql, String.class);
        return names;
    }
}

😊sql을 직접 작성한 후 queryforList를 통해 sql을 실행하면서 그 값을 받아 올 수 있다. 이 때 String.class를 통해 반환 받을 값을 지정해주 었는데 만약 객체로 받아오고 싶다면 RowMapper를 사용하여야 한다.

아래는 RowMapper 사용 방법의 예이다.

public class EmployeeRowMapper implements RowMapper<Employee> {
    @Override
    public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
        Employee employee = new Employee();
        employee.setId(rs.getInt("id"));
        employee.setName(rs.getString("name"));
        employee.setAge(rs.getInt("age"));
        employee.setDepartment(rs.getString("department"));
        return employee;
    }
}

마무리

😏강의를 들어보면 jpa로 해결 가능한것이 대부분이지만 정말 어쩔수 없이 jdbctemplate을 사용해야 할 경우가 있다고 한다. 위에서 보아서 알겠지만 jdbctemplate은 string으로 되어 있어 실수할 가능성이 높은 단점이 있다.

출처 : 스프링 DB 2편 - 데이터 접근 활용 기술

profile
greenTea입니다.

0개의 댓글

관련 채용 정보