query()

// 쿼리문에 변수값이 없는 경우
public List<Customer> findAllCustomers() {
    String sql = "select id, first_name, last_name from customers";
    return jdbcTemplate.query(
            sql,
            (resultSet, rowNum) ->
                    new Customer(
                            resultSet.getString("first_name"),
                            resultSet.getString("last_name")
                    )
            );
}

// 쿼리문에 변수값이 있는 경우
public List<Customer> findCustomerByFirstName(String firstName) {
    String sql = "select id, first_name, last_name from customers where first_name = ?";
    return jdbcTemplate.query(
            sql,
            (resultSet, rowNum) ->
                    new Customer(
                            resultSet.getString("first_name"),
                            resultSet.getString("last_name")
                    ),
            firstName
            );
}

queryForObject()

// 쿼리문에 변수값이 없는 경우
public int count() {
    String sql = "select count(*) from customers";
    return jdbcTemplate.queryForObject(sql, Integer.class);
}

// 쿼리문에 변수값이 있는 경우
public String getLastName(Long id) {
    String sql = "select last_name from customers where id = ?";
    return jdbcTemplate.queryForObject(sql, String.class, id);
}

// 결과값을 객체로 만들 경우
public Customer findCustomerById(Long id) {
    String sql = "select id, first_name, last_name from customers where id = ?";
    return jdbcTemplate.queryForObject(
            sql,
            (resultSet, rowNum) ->
                    new Customer(
                            resultSet.getString("first_name"),
                            resultSet.getString("last_name")
                    ),
            id);
}

https://bepoz-study-diary.tistory.com/355