Eis meu primeiro contato com interfaces, por favor, gostaria de saber se é possível fazer algo do tipo sem usar hibernate, … ?
Está dando erro! Quando coloco throws SQLException ele da erro no Override, quando uso try catch não consigo colocar o return dentro, e quando coloco fora, retorna vazio. Obrigado.
[code]public interface Estados {
public List list();
}[/code]
[code]public class EstadosDAO implements Estados {
private DatabaseManager databaseManager = new DatabaseManager();
@Override
public List list() {
List lista = new ArrayList();
String sql = "SELECT estado_id, descricao FROM estados";
try {
ResultSet rs = databaseManager.getConexao().createStatement().executeQuery(sql);
while (rs.next()) {
lista.add(preencheLista(rs));
}
return lista;
} catch (SQLException e) {
}
}[/code]
[quote=therodrigoagostin]Eis meu primeiro contato com interfaces, por favor, gostaria de saber se é possível fazer algo do tipo sem usar hibernate, … ?
Está dando erro! Quando coloco throws SQLException ele da erro no Override, quando uso try catch não consigo colocar o return dentro, e quando coloco fora, retorna vazio. Obrigado.
[code]public interface Estados {
public List list();
}[/code]
Resolução:
[code]public interface Estados {
public List list() throws SQLException;
}[/code]
Como o amigo sugeriu no post anterior, você pode declarar na interface qual exceção disparar.
Neste caso em específico, entretanto, eu sugiro que você encapsule a SQLException em uma exceção não checada. Isto por que as implementações da interface Estados não precisam ser objetos que acessam banco de dados (não há pq vincular esta dependência). Veja:
public class EstadosDAO implements Estados {
private DatabaseManager databaseManager = new DatabaseManager();
@Override
public List list() {
List lista = new ArrayList();
String sql = "SELECT estado_id, descricao FROM estados";
try {
ResultSet rs = databaseManager.getConexao().createStatement().executeQuery(sql);
while (rs.next()) {
lista.add(preencheLista(rs));
}
return lista;
} catch (SQLException e) {
throw new InvalidStateException(e); // ou uma excecao customizada
}
}
}
E outra dica, você não precisa declarar que os métodos são públicos na interface, eles naturalmente são públicos:
public interface Estados {
List list();
}