Você está aqui: JSP (Java Server Pages) ::: JSP + MySQL ::: Passos Iniciais

Tudo que você precisa saber sobre transações usando JSP + MySQL

Quantidade de visualizações: 9171 vezes
TUDO QUE VOCÊ PRECISA SABER SOBRE TRANSAÇÕES USANDO JSP E MYSQL

A maioria das interações JSP/MySQL que você viu até aqui envolveu comandos SQL únicos. As vezes, porém, vários comandos SQL são executados afim de executar uma ação única.

Examine o cenário de transferência de dinheiro entre contas. Se o dinheiro for retirado da conta A mas um problema ocorrer durante o acréscimo deste valor na conta B, o banco de dados ficará inconsistente.

Para evitar isso, os bancos de dados fornecem um recurso conhecido como transação. Uma transação é composta de um conjunto de instruções SQL. Ou o conjunto inteiro é executado com sucesso ou o banco de dados volta ao seu estado anterior.

Por padrão, o objeto Connection é configurado com o valor true para sua propriedade autocommit, ou seja, a cada comando SQL executado, o banco de dados é atualizado e outras pessoas acessando já podem ver as alterações. Assim, o primeiro passo é alterar este comportamento usando:

conn.setAutoCommit(false);

Onde conn é uma referência válida para um objeto Connection. Pronto! Agora o banco de dados só será realmente atualizado quando o método commit() do objeto Connection for chamado:

conn.commit();

Durante o processamento dos comandos SQL erros podem surgir. Caso isso aconteça só precisamos chamar o método:

conn.rollback();

E o banco de dados voltará ao seu estado original.

Veja um exemplo completo:
<%@ page language="java" import="java.sql.*, estudos.Conexao" %>
<html>
<head><title>Aprendendo JSP</title>
</head>
<body>

<%
  // Este exemplo mostra como usar transações usando
  // JSP + MySQL
  
  Connection conn = Conexao.conectar();
  
  conn.setAutoCommit(false); // desativa autocommit
  
  try{ // tenta gravar os dados
    
    Statement query = conn.createStatement();
    // o trecho de código abaixo insere três registros
    // em uma tabela chamada CLIENTES
    query.executeUpdate("INSERT INTO CLIENTES " + 
              "VALUES('', 393, 'Carlos', '1234', 23)");
    query.executeUpdate("INSERT INTO CLIENTES " + 
              "VALUES('', 434, 'Maria', '5555', 31)");
    query.executeUpdate("INSERT INTO CLIENTES " + 
              "VALUES('', 421, 'José Carlos', '4321', 54)");
    conn.commit(); // grava os dados
  }
  catch(SQLException e){ 
    conn.rollback(); // houve erro...voltar ao estado original
  }
  finally{ 
    conn.setAutoCommit(true); // ativa autocommit
  }    
%>

</body>
</html>


Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de JSP (Java Server Pages)

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 26 usuários muito felizes estudando em nosso site.