Negocios
La transacción es una unidad de ejecución lógica que consiste en una secuencia de operación de un paso o múltiples pasos. Cuatro características de las transacciones: atomicidad, consistencia, isoización y atomicidad de durabilidad: la unidad de ejecución más pequeña de la aplicación de transacciones, no se puede dividir. Es el cuerpo de ejecución lógica mínima que ya no se divide en los asuntos.
Consistencia: el resultado de la ejecución de la transacción debe hacer la base de datos de una consistencia a otro estado.
Isoidades: la ejecución de cada transacción no se interfiere, y las operaciones internas de cualquier transacción se aislan para otras transacciones concurrentes. Es decir: el estado intermedio de la otra parte no se puede ver entre la transacción de la ejecución concurrente, y los asuntos de la ejecución concurrente no pueden verse afectados entre sí.
Durabilidad: la continuidad también se conoce como persistencia.
Las oraciones involucradas en la base de datos habitual son: un conjunto de DML (lenguaje de munipuración de datos, lenguaje de operación de datos), este conjunto de declaraciones DML mantendrá una buena consistencia después de la modificación; ; Un lenguaje de control de datos, lenguaje de control de datos), principalmente otorgar declaraciones de otorgación y revocación. Las declaraciones DDL y DCL solo pueden estar disponibles como máximo, porque causarán transacciones de inmediato. Cuando todas las operaciones de la base de datos contenidas en la oficina se implementan con éxito, las transacciones deben enviarse para que estas modificaciones sean de forma permanente. Hay dos formas de envío de transacciones: envío de visualización y envío automático. Pantalla de envío: use Commit para enviar el envío automático: ejecutar DLL o DCL, o el programa se retira de cualquier ejecución de operación de la base de datos de cualquier base de datos contenida en la transacción, debe retroceder para hacer todas las modificaciones en la falla de la transacción. Hay dos formas de rodar la transacción: mostrar retroceso y retroceso automático. Mostrar reversión: use reversión para rodar automáticamente: error del sistema o salir por la fuerza.
Posibles problemas de procesamiento concurrente de transacción
1. Leyendo sucio: una transacción lee los datos que no han sido enviados por otra transacción
2. Lectura no repertable: El funcionamiento de una transacción hace que diferentes datos se lean dos veces antes y después de otro
3. Phantom Read: La operación de una transacción conduce a los resultados de los resultados de los resultados de dos consultas antes y después de otra
Ejemplo:
Durante la ejecución de la transacción A y B:
Mecanismo de transacción Java JDBC
Import java.sql.connection; String User = "Root"; String QUERYSQL = "Quera SQL"; Operación de actualización de PSTMTUPDATE = const.PrepareStatement (UpdateSQL); ); } Finalmente {try {if (pstmtupdate! = Null) {pstmtupdate.close ();} if (pstmtqury! = Null) {pstmtqury.close ();} if (conos = null) {conn.cl ose (ose) ;}} Catch (SQLException e2) {}}}}}
Soporte de asuntos de JDBC
La conexión de JDBC también admite las cosas. En otras palabras, la ejecución de cada declaración SQL se enviará a la base de datos de inmediato, que será permanentemente efectiva y no puede operarla. Cierre la presentación automática de la conexión e inicie las cosas. El método de conexión setAuToCommit es: Connection.setAutOcommit (falso); Cuando activamos las cosas, la operación de la base de datos completada en la conexión actual no se enviará a la base de datos de inmediato, y debemos llamar al método de conexión de confirmación. Si hay una falla de declaración, puede llamar a Rollback de un lado a otro. Nota: Si la conexión encuentra una anormalidad SQLException sin procesar, el sistema saldrá anormalmente y el sistema volverá automáticamente la transacción. Si el programa captura esta anormalidad, es necesario mostrar la transacción de reversión en el tratamiento anormal. La conexión proporciona métodos para configurar el punto de ahorro en el medio de la transacción: setSavePoint. punto. SavePoint setSavePoint (nombre de cadena): cree un punto medio con un nombre especificado en la transacción actual y devuelva el objeto Guardar Point del punto medio. De acuerdo con el objeto de punto medio. El nombre de configuración es solo una mejor distinción entre el objeto de punto medio.
El apoyo de JDBC a las transacciones se refleja en tres aspectos:
1. Modo automático
La conexión proporciona una propiedad automotriz para especificar cuándo termina la transacción
2. Cuando el comité automático es verdadero, cuando la ejecución de cada operación SQL independiente se completa, la transacción se presenta inmediatamente, lo que significa que cada operación SQL es una transacción
Cuando se calcula una operación SQL independiente, la especificación JDBC se define así:
Para el lenguaje de operación de datos (DML) y el lenguaje de definición de datos (DDL), tan pronto como se ejecuta la oración
3. Cuando el autocombito es falso, cada transacción debe mostrar el método de llamada para enviar, o se muestra el método de devolución de llamada para retroceder. Auto-comité predeterminado
Niveles de transacción
JDBC define el nivel de cinco transacciones ::
Punto de preservación
JDBC define la interfaz SavePoint y proporciona un mecanismo de control de transacciones de granos grados más finos. Cuando se establece un punto de ahorro, puede revertir el estado en el punto de ahorro, no toda la transacción de Rollback. Puede consultar esta información. Ejecutó la declaración de modificación antes de realizar la consulta. Para resolver este problema, debemos presentar el mecanismo de transacción JDBC.