Trabalho com o oracle e tenho a necessidade de realizar selects de diversos tipos, a minha dúvida é a respeito do retorno desses selects eu tenho que criar uma classe java para cada select diferente que eu fizer sendo que retornar o ResultSet não funciona pois eu fecho a conexão com o banco de dados.
Existe um outra maneira mais inteligente de retornar o resultado de consulta SQL ?
Ex: Select id, nome From Cliente -> utiliza uma classe chamada cliente.
Select a.id, b.id, a.nome, b.total From Cliente a, Pedido b -> tenho que criar uma classe para esse tipo de retorno ?
publicclassDAOCliente{publicintconsultar(Stringcodigo)throwsSQLException{PreparedStatementprepStatement=null;ResultSetrs=null;Stringtelefone="";Stringquery=" SELECT telefone FROM cliente WHERE cod = ?";try{conexao=ControladorConexao.abrirConexao();prepStatement=conexao.prepareStatement(query);prepStatement.setString(1,codigo);rs=prepStatement.executeQuery();while(rs.next()){telefone=rs.getString("telefone");}}catch(SQLExceptione){thrownewSQLException(e.getMessage());}finally{prepStatement.close();rs.close();conexao.close();}returntelefone;}publicvoidincluir(VOClientecliente)throwsSQLException{PreparedStatementprepStatement=null;finalStringsql=" INSERT INTO cliente (COD_CARGO , telefone) VALUES (? , ?) ";try{conexao=ControladorConexao.abrirConexao();prepStatement=conexao.prepareStatement(sql);prepStatement.setString(1,cliente.getCodigo());prepStatement.setDate(2,cliente.getTel());prepStatement.executeUpdate();System.out.println(" Incluído com Sucesso ! \n");}catch(SQLExceptione){thrownewSQLException(e.getMessage());}finally{prepStatement.close();conexao.close();}}//fim do metodo incluir }
J
jaireltonPJ
Nunca trabalhe com valores soltos, isso fere ou praticamente mata o modelo OO... crie classes para representar seus dados...
ex.:
publicclassCliente{privateintid;privateStringnome;//gettters & setters}publicclassClienteDAO{publicListobterTodos(){Listlista=newArrayList();ResultSetres=//executa consultawhile(res.next()){Clientecli=newCliente();cli.setId(res.getInt("id"));cli.setNome(res.getString("nome"));lista.add(cli);}returnlista;}publicClienteobterPorId(intid){Clientecli=null;ResultSetres=//executa consultaif(res.first()){cli=newCliente();cli.setId(res.getInt("id"));cli.setNome(res.getString("nome");}returncli;}publicvoidincluir(Clientecli){//inclui o cliente}}