1. O que é uma transação Java?
A crença comum é que as transações são relevantes apenas para o banco de dados.
As transações devem cumprir os princípios ACID estabelecidos pela ISO/IEC. ACID é a abreviatura de atomicidade, consistência, isolamento e durabilidade. A atomicidade de uma transação significa que qualquer falha durante a execução da transação fará com que quaisquer modificações feitas pela transação se tornem inválidas. Consistência significa que quando uma transação falha, todos os dados afetados pela transação devem ser restaurados ao estado anterior à execução da transação. Isolamento significa que as modificações nos dados durante a execução da transação não são visíveis para outras transações antes que a transação seja confirmada. Persistência significa que o status dos dados enviados deve estar correto quando a execução da transação falhar.
O entendimento popular é que uma transação é um conjunto de unidades de operação atômicas. Do ponto de vista do banco de dados, é um conjunto de instruções SQL. Todas elas são executadas com sucesso. instruções executadas anteriormente serão canceladas. A resposta mais simples é: ou todas as execuções são bem-sucedidas ou são canceladas e não executadas.
Como o conceito de transações vem do banco de dados, o que é uma transação Java? Qual é a conexão?
Na verdade, se um sistema aplicativo Java deseja operar um banco de dados, ele é implementado por meio de JDBC. Adição, modificação e exclusão são implementadas indiretamente por meio de métodos correspondentes, e o controle da transação também é transferido para o código do programa Java de acordo. Portanto, as transações de operação de banco de dados são tradicionalmente chamadas de transações Java.
2. Por que as transações são necessárias
As transações são propostas para resolver operações de segurança de dados. O controle de transações é, na verdade, para controlar o acesso seguro aos dados. Aqui está um exemplo simples: por exemplo, no negócio de transferência bancária, a conta A deseja transferir 1.000 yuans de sua própria conta para a conta B. O saldo da conta A deve primeiro ser subtraído por 1.000 yuans e, em seguida, o saldo da conta B deve ser aumentado em 1.000 yuans. Se houver um problema na rede intermediária, a dedução de 1.000 yuans da conta de A tiver terminado e a operação de B falhar devido à interrupção da rede, então todo o negócio falhará e o controle deverá ser feito para exigir o cancelamento da transferência negócios da conta de A. Isto pode garantir a correcção do negócio.Para completar esta operação, é necessária uma transacção.A diminuição dos fundos da conta A e o aumento dos fundos da conta B são combinados numa única transacção. mantendo assim a segurança dos dados.
3. Tipos de transações Java
Existem três tipos de transações Java: transações JDBC, transações JTA (Java Transaction API) e transações de contêiner.
1. Transações JDBC
As transações JDBC são controladas usando objetos Connection. A interface JDBC Connection (java.sql.Connection) fornece dois modos de transação: envio automático e envio manual. java.sql.Connection fornece os seguintes métodos para controlar transações:
public void setAutoCommit(booleano)
getAutoCommit() booleano público
commit público vazio()
reversão de vazio público ()
Ao usar a demarcação de transação JDBC, você pode combinar diversas instruções SQL em uma única transação. Uma desvantagem das transações JDBC é que o escopo da transação é limitado a uma conexão de banco de dados. Uma transação JDBC não pode abranger vários bancos de dados.