1. ¿Qué es una transacción Java?
La creencia común es que las transacciones sólo son relevantes para la base de datos.
Las transacciones deben cumplir con los principios ACID establecidos por ISO/IEC. ACID es la abreviatura de atomicidad, consistencia, aislamiento y durabilidad. La atomicidad de una transacción significa que cualquier falla durante la ejecución de la transacción hará que cualquier modificación realizada por la transacción deje de ser válida. La coherencia significa que cuando una transacción falla, todos los datos afectados por la transacción deben restaurarse al estado anterior a la ejecución de la transacción. El aislamiento significa que las modificaciones de los datos durante la ejecución de la transacción no son visibles para otras transacciones antes de que se confirme la transacción. La persistencia significa que el estado de los datos enviados debe ser correcto cuando falla la ejecución de la transacción.
El entendimiento popular es que una transacción es un conjunto de unidades de operación atómica. Desde la perspectiva de una base de datos, es un conjunto de instrucciones SQL, o todas se ejecutan con éxito. Si una de las instrucciones tiene un error en la ejecución por algún motivo, todas. Las instrucciones ejecutadas previamente serán canceladas. La respuesta más sencilla es: o todas las ejecuciones tienen éxito o se cancelan y no se ejecutan.
Dado que el concepto de transacciones proviene de la base de datos, ¿qué es una transacción Java? ¿Cuál es la conexión?
De hecho, si un sistema de aplicación Java quiere operar una base de datos, se implementa a través de JDBC. La adición, modificación y eliminación se implementan indirectamente mediante los métodos correspondientes y, en consecuencia, el control de las transacciones también se transfiere al código del programa Java. Por lo tanto, las transacciones de operación de bases de datos se denominan tradicionalmente transacciones Java.
2. Por qué son necesarias las transacciones
Las transacciones se proponen para resolver las operaciones de seguridad de los datos. El control de las transacciones es en realidad controlar el acceso seguro a los datos. Aquí hay un ejemplo simple: por ejemplo, en el negocio de transferencias bancarias, la cuenta A quiere transferir 1000 yuanes de su propia cuenta a la cuenta B. Primero se deben restar 1000 yuanes del saldo de la cuenta A y luego se debe restar el saldo de la cuenta B. se incrementará en 1.000 yuanes. Si hay un problema en la red intermedia, la deducción de 1.000 yuanes de la cuenta de A ha finalizado y la operación de B falla debido a la interrupción de la red, entonces todo el negocio fracasa y se debe realizar un control para exigir la cancelación de la transferencia. negocio de la cuenta de A. Esto puede garantizar la corrección del negocio. Para completar esta operación, se requiere una transacción para combinar la disminución de los fondos de la cuenta A y el aumento de los fondos de la cuenta B en una sola transacción. manteniendo así la seguridad de los datos.
3. Tipos de transacciones Java
Hay tres tipos de transacciones Java: transacciones JDBC, transacciones JTA (Java Transaction API) y transacciones de contenedores.
1. Transacciones JDBC
Las transacciones JDBC se controlan mediante objetos de conexión. La interfaz de conexión JDBC (java.sql.Connection) proporciona dos modos de transacción: envío automático y envío manual. java.sql.Connection proporciona los siguientes métodos para controlar las transacciones:
conjunto vacío públicoAutoCommit (booleano)
getAutoCommit() booleano público
confirmación nula pública()
reversión de vacío público()
Al utilizar la demarcación de transacciones JDBC, puede combinar varias declaraciones SQL en una sola transacción. Una desventaja de las transacciones JDBC es que el alcance de la transacción se limita a una conexión de base de datos. Una transacción JDBC no puede abarcar varias bases de datos.