package com.tddinaction.data.spring.jdbc;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.PreparedStatementCallback;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import com.tddinaction.data.PersonDao;
import com.tddinaction.data.person.Person;
public class JdbcTemplatePersonDao extends JdbcDaoSupport implements
PersonDao {
@SuppressWarnings("unchecked")
public List<Person> findAll() {
return getJdbcTemplate().query("SELECT * FROM employee",
new Object[0], new PersonRowMapper());
}
@SuppressWarnings("unchecked")
public List<Person> findByLastName(String lastName) {
String sql = "SELECT * FROM employee WHERE last_name = ?";
Object[] args = { lastName };
RowMapper mapper = new PersonRowMapper();
return getJdbcTemplate().query(sql, args, mapper);
}
@SuppressWarnings("unchecked")
public List<Person> findByLastname(String lastname) {
String sql = "SELECT * FROM employee WHERE last_name = ?";
String[] args = new String[] { lastname };
RowMapper mapper = new PersonRowMapper();
return getJdbcTemplate().query(sql, args, mapper);
}
public void save(final Person person) {
getJdbcTemplate()
.execute(
"INSERT INTO employee (employee_uid, start_date, first_name, last_name, ssn) VALUES (?, NOW, ?, ?, ?)",
new PreparedStatementCallback() {
public Object doInPreparedStatement(
PreparedStatement ps)
throws SQLException,
DataAccessException {
ps.setInt(1, 4);
ps
.setString(2, person
.getFirstname());
ps.setString(3, person.getLastname());
ps.setString(4, person.getSsn());
ps.executeUpdate();
return null;
}
});
}
public Person find(Long id) {
return null;
}
}