Implementação da classe ContaService.java
. Fiz algumas alterações no try...catch
, acrescentei o finally
, pois imaginei o seguinte: caso haja algum erro ao executar o ps.executeQuery()
, teremos uma garantia que a conexão será fechada:
//...
public Conta listarPorNumero(Integer numero) {
String sql = "SELECT * FROM conta WHERE numero = ?";
PreparedStatement ps;
ResultSet resultSet;
Conta conta = null;
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, numero);
resultSet = ps.executeQuery();
while (resultSet.next()) {
Integer numeroRecuperado = resultSet.getInt(1);
BigDecimal saldo = resultSet.getBigDecimal(2);
String nome = resultSet.getString(3);
String cpf = resultSet.getString(4);
String email = resultSet.getString(5);
DadosCadastroCliente dadosCadastroCliente =
new DadosCadastroCliente(nome, cpf, email);
Cliente cliente = new Cliente(dadosCadastroCliente);
conta = new Conta(numeroRecuperado, saldo, cliente);
}
resultSet.close();
ps.close();
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
conn.close();
return conta;
}
}
//...