metodo de inserção então sempre usando PreparedStatement e não resultset?
FacaNaCaveira
Fala ai maicollange blz?
Cara pelo pouco conhecimento que tenho, acredito que o ResulSet seja realmente so para retorno conforme exemplo abaixo:
publicPessoafind(intcod)throwsException{open();Pessoapessoa=null;stmt=con.prepareStatement("SELECT * FROM pessoa WHERE idpessoa=?");stmt.setInt(1,cod);rs=stmt.executeQuery();if(rs.next()){pessoa=newPessoa(rs.getInt("idpessoa"),rs.getString("nome"),rs.getString("email"),rs.getDate("datanasc"));}stmt.close();close();returnpessoa;}
Vale resaltar que rs esta definido como ResulSet
Abração 8)
Max
maicollange
Eai FacaNaCaveira,
Eu estou em duvido por que eu vi um exemplo, e o cara estava usando o resultset para inserir e atualizar os dados no banco, com métodos “rs.moveToInsertRow” e “rs.updateRow”, ai queria saber qual a vantagem(se tem!) de usar assim.
Por que quase todos os exemplos aqui no guj foi como o douglastc mostrou. não seria uma boa pratica usar o resultset para fazer isso, por que pelo que eu li o resulset seria usado somente para retorno de uma consulta e navegar nos dados.
maicollange
Pessoal não sei se estou conseguindo explicar a minha duvida, qualquer coisa avisa para eu tentar ser mais claro
maicollange
Pessoal segue um exemplo melhor pra ajudar a explicar
publicclassConexao{publicConnectionconecta(){Connectionresult;try{Class.forName(driver);conexao=DriverManager.getConnection(url,usuario,senha);result=conexao;}catch(ClassNotFoundExceptionDriver){JOptionPane.showMessageDialog(null,"Driver não encontrado"+Driver);result=null;}catch(SQLExceptionFonte){JOptionPane.showMessageDialog(null,"Deu erro na conexao com a fonte de dados");result=null;}returnresult;}publicResultSetexecuteSQL(Stringsql){try{System.out.println(sql);PreparedStatementstm=conexao.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.TYPE_FORWARD_ONLY);resultset=stm.executeQuery();}catch(SQLExceptionsqlex){JOptionPane.showMessageDialog(null,"Não foi possível executar o comando sql,"+sqlex+","+"o sql passado foi "+sql);}returnresultset;}}publicclassPessoa{publicResultsetrspessoa;publicaddpessoa(){Conexaocon=newConexao();con.conecta();rspessoa=con.executeSQL("select * from pessoa");rspessoa.moveToInsertRow();rspessoa.updateInt("id",id);rspessoa.updateString("nome",TFnome.getText());rspessoa.insertRow();}}
E
elmarquinhos
Companheiro, nunca usei o resultset para inserção ou edição, sempre usei o preparedStatement, mas quanto a sua duvida ja dei uma lida sobre o resultset, e sei que ele é melhor quando se refere a inserção/update de um registro, o statement ja teria um ganho de performace quando vc vai enviar varios registros ao mesmo tempo…
estou procurando tbem mais informações… assim como vc…