Sempre perco muito tempo com acesso a dados do banco, então estou tentando criar uma singleton que possa me poupar algum trabalho. Só que estou com alguns probleminhas no prepareStatement. Se alguém puder me dar um help nesse metodo, agradeço.
// conn e um objeto Connection
public ResultSet execute(String query, Object... param) {
try {
PreparedStatement prepStmt = this.conn.prepareStatement(query);
for (int x = 0; x < param.length; x++) {
prepStmt.setObject(x + 1, param[x]);
}
return prepStmt.executeQuery();
} catch (SQLException e) {
return null;
}
}
//Nas classes que preciso ter persistidas uso algo como:
private static Cliente get(ResultSet result) {
Cliente cliente = null;
try {
if (result.next()) {
cliente = new Cliente();
cliente.setId(result.getLong("id"));
cliente.setNome(result.getString("nome"));
cliente.setCpf(result.getLong("cpf"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return cliente;
}
public static Cliente get(long id) {
ResultSet result = DataConnection.getInstance()
.execute("select c.* from c.cliente where c.id = ?", id);
return get(result);
}
Sem parâmetros funciona depurei o código mas não sei onde esta o erro.
Futuramente também quero colocar as consultas em um arquivo separado, alguem tem uma boa dica de uma maneira segura de se fazer o mesmo.