Olá pessoal,
Estou com uma duvida, dei uma pesquisada sobre inserir dados e achei duas formar de ser feita, queria saber qual é a forma correta ou melhor de se trabalhar.
Segue um exemplo de cada um dos tipos:
ex: Resultset
private PreparedStatement stm;
private ResultSet pessoas = stm.executeSQL("Select * from pessoas);
pessoas.insertRow();
pessoas.updateInt(“id”, codigo);
pessoas.updateString(“nome”, nome);
pessoas.first();
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.
Pessoal segue um exemplo melhor pra ajudar a explicar
[code]public class Conexao {
public Connection conecta() {
Connection result;
try {
Class.forName(driver);
conexao = DriverManager.getConnection(url, usuario, senha);
result = conexao;
} catch (ClassNotFoundException Driver) {
JOptionPane.showMessageDialog(null, “Driver não encontrado”+Driver);
result = null;
} catch (SQLException Fonte) {
JOptionPane.showMessageDialog(null, “Deu erro na conexao com a fonte de dados”);
result = null;
}
return result;
}
public ResultSet executeSQL(String sql) {
try {
System.out.println(sql);
PreparedStatement stm = conexao.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.TYPE_FORWARD_ONLY);
resultset = stm.executeQuery();
} catch (SQLException sqlex) {
JOptionPane.showMessageDialog(null, "Não foi possível executar o comando sql," + sqlex + ","
+ "o sql passado foi " + sql);
}
return resultset;
}
}
public class Pessoa {
public Resultset rspessoa;
public addpessoa(){
Conexao con = new Conexao();
con.conecta();
rspessoa =con.executeSQL(“select * from pessoa”);
rspessoa.moveToInsertRow();
rspessoa.updateInt(“id”, id);
rspessoa.updateString(“nome”, TFnome.getText());
rspessoa.insertRow();
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…