Affaires
La transaction est une unité d'exécution logique composée d'une séquence de fonctionnement en une étape ou de plusieurs étapes. Quatre caractéristiques des transactions: atomicité, cohérence, isoïsation et atomicité de la durabilité: la plus petite unité d'exécution de l'application de transaction, ne peut être divisée. Il s'agit du corps d'exécution logique minimal qui n'est plus divisé en affaires.
Cohérence: le résultat de l'exécution de la transaction doit faire la base de données d'une cohérence à un autre état.
Isoities: L'exécution de chaque transaction n'est pas interférée et les opérations internes de toute transaction sont isolées pour d'autres transactions simultanées. Autrement dit: le statut intermédiaire de l'autre partie ne peut pas être vu entre la transaction de l'exécution simultanée, et les affaires de l'exécution simultanée ne peuvent pas être affectées les unes par les autres.
Durabilité: la continuité est également connue sous le nom de persistance.
Les phrases impliquées dans la base de données habituelle sont: un ensemble d'instructions DML (langage de munipuration des données, langage d'opération de données), cet ensemble d'instructions DML conservera une bonne cohérence après modification; ; Instruction DDL (Data Definition Language, Data Definition Language), La langue de l'objet de données a créé, alter, tomber. Une instruction linguistique de contrôle des données, langage de contrôle des données), accorde principalement et révoquez les instructions. Les instructions DDL et DCL ne peuvent être disponibles que tout au plus, car elles provoqueront des transactions de soumission immédiatement. Lorsque toutes les opérations de base de données contenues dans le bureau sont implémentées avec succès, les transactions doivent être soumises pour rendre ces modifications efficaces en permanence. Il existe deux façons de soumettre des transactions: la soumission d'affichage et la soumission automatique. Affichage de la soumission: utilisez le commit pour soumettre la soumission automatique: exécuter DLL ou DCL, ou le programme est retiré de toute exécution de fonctionnement de la base de données de toute base de données contenue dans la transaction, elle doit être annulée pour effectuer toutes les modifications de l'échec de la transaction. Il y a deux façons de lancer la transaction: afficher le retrait et le recul automatique. Afficher Rollback: Utilisez Rollback pour rouler automatiquement: Erreur système ou sortie de force.
Problèmes possibles du traitement simultané des transactions
1. Dirty Read: Une transaction lit les données qui n'ont pas été soumises par une autre transaction
2. Read non reperable: le fonctionnement d'une transaction fait lire différentes données deux fois avant et après l'autre
3. Phantom Read: Le fonctionnement d'une transaction conduit aux résultats des résultats des résultats de deux requêtes avant et après l'autre
Exemple:
Pendant l'exécution de la transaction A et B:
Mécanisme de transaction Java JDBC
Importation java.sql.Connection; String final user = "root"; String statique public Passwd = "123456"; String Querysql = "Query SQL"; Mise à jour de PSTMTupDate = const.preparestation (UpdaSQL); )); } Enfin {try {if (pstmtupdate! = Null) {pstmtupdate.close ();} if (pstmtQury! = Null) {pstmtQury.close ();} if (con! = Null) {Conn.cl ose (ose) ;}} Catch (sqlexception e2) {}}}}}
Support des affaires de JDBC
La connexion de JDBC prend également en charge les choses. En d'autres termes, l'exécution de chaque instruction SQL sera immédiatement soumise à la base de données, qui sera effective en permanence et ne peut pas la faire fonctionner. Fermez la soumission automatique de la connexion et démarrez les choses. La méthode de connexion setAutoCommit est: connection.setAutoCommit (false); Lorsque nous allumons les choses, l'opération de base de données terminée dans la connexion actuelle ne sera pas immédiatement soumise à la base de données et nous devons appeler la méthode de connexion. S'il y a un échec de déclaration, vous pouvez appeler Rollback d'avant en arrière. Remarque: Si la connexion rencontre une anomalie de SQLEXception non transformée, le système quittera anormalement et le système annulera automatiquement la transaction. Si le programme capture cette anomalie, il est nécessaire d'afficher la transaction en arrière dans le traitement anormal. La connexion fournit des méthodes pour définir le point de sauvegarde au milieu de la transaction: setSavepoint. indiquer. Savepoint SetSavePoint (nom de chaîne): Créez un point central avec un nom spécifié dans la transaction actuelle et renvoyez l'objet de sauvegarde du point central. Selon l'objet Point Middle. Le nom de réglage est juste une meilleure distinction entre l'objet de point médian.
La prise en charge des transactions de JDBC se reflète dans trois aspects:
1. Mode automatique
La connexion fournit une propriété automatique-engagement pour spécifier lorsque la transaction est terminée
2. Lorsque l'auto-engagement est vrai, lorsque l'exécution de chaque opération SQL indépendante est terminée, la transaction est immédiatement soumise, ce qui signifie que chaque opération SQL est une transaction
Quand une opération SQL indépendante est-elle calculée, la spécification JDBC est définie comme ceci:
Pour le langage de l'opération de données (DML) et le langage de définition des données (DDL), dès que la phrase est exécutée
3. Lorsque le engagement automatique est faux, chaque transaction doit afficher la méthode d'appel à soumettre, ou que la méthode de rappel s'affiche pour reculer. Par défaut de communication automatique
Niveau de transaction
JDBC définit le niveau de cinq transactions ::
Point de conservation
JDBC définit l'interface de sauvegarde et fournit un mécanisme de contrôle des transactions plus fin. Lorsqu'un point de sauvegarde est défini, vous pouvez faire reculer le statut au point de sauvegarde, et non la transaction de Rollback. Vous pouvez interroger ces informations. Exécuté l'instruction de modification avant d'effectuer l'enquête. Pour résoudre ce problème, nous devons introduire le mécanisme de transaction JDBC.