Transações

4 respostas
F

É possível fazer um transaction com o prepareStatement ou devo utilizar outro recurso como o que?

Obrigado

4 Respostas

J

Acho que seria algo como:

conexao.setAutoCommit(false);
try{
   PreparedStatement stmt = conexao.prepareStatement("update tabela set campo=? where id=?");

   for(int i=0;i<10;i++){
      stmt.clearParameters();
      stmt.setString(1, "dado"+i);
      stmt.setInt(2, i);
      stmt.addBatch();
   }

stmt.executeBatch();
conexao.commit();
}catch(SQLException sqle){
   try{
      conexao.rollback();
   }catch(SQLException sqle2){
       sqle2.printStackTrace();
   }
}
F

Obrigado Jairelton, enquanto eu não conseguir usar o hibernate vou fazendo assim, muito legal aquele exemplo com struts e hibernate que tem na sua página, pena que não consegui fazer funcionar no JSF ainda…

valeu

F

Usando o stmt.addBatch(); e o stmt.executeBatch(); ele executa somente a última operação no BD, se não usar fazer somente com o conexao.setAutoCommit(false); conexao.commit(); e conexao.rollback(); executa corretamente…

Para que serve esse Batch?

J

batch são operações em lote, com varias expressões SQL que são executadas juntas… mas pode usar do jeito que você ver que dá certo aí!

Criado 29 de junho de 2006
Ultima resposta 30 de jun. de 2006
Respostas 4
Participantes 2