package wifi.dao; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Properties; import javax.sql.DataSource; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import wifi.data.Curso; public class CursoJdbcDAO extends AbstractJdbcDAO implements CursoDAO { public CursoJdbcDAO(DataSource datasource) { super(datasource); } public CursoJdbcDAO(DataSourceTransactionManager manager) { super(manager); } public CursoJdbcDAO(Properties params) { super(params); } @Override @Transactional(propagation=Propagation.REQUIRED) public void create(Curso c) { try { PreparedStatement stmt = createPreparedStatement("INSERT INTO curso VALUES (?, ?)"); stmt.setInt(1, c.getId()); stmt.setString(2, c.getNome()); stmt.execute(); } catch (SQLException e) { throw new RuntimeException(e); } } @Override @Transactional(propagation=Propagation.REQUIRED, readOnly=true) public Curso read(Curso c) { Curso curso = null; try { PreparedStatement stmt = createPreparedStatement("SELECT * FROM curso WHERE id = ?"); stmt.setInt(1, c.getId()); ResultSet rs = stmt.executeQuery(); if (rs.next()) { curso = new Curso(); curso.setId(rs.getInt("id")); curso.setNome(rs.getString("nome")); } } catch (SQLException e) { throw new RuntimeException(e); } return curso; } @Override public Curso update(Curso c) { return null; } @Override public void delete(Curso c) { } @Override public List<Curso> listAll() { List<Curso> cursos = new ArrayList<Curso>(); try { ResultSet rs = createStatement().executeQuery("SELECT * FROM curso"); while (rs.next()) { Curso c = new Curso(); c.setId(rs.getInt("id")); c.setNome(rs.getString("nome")); cursos.add(c); } } catch (SQLException e) { throw new RuntimeException(e); } return cursos; } }