Maison Java javaDidacticiel Résoudre le problème du nombre inexact de mises à jour de base de données dans le développement Java

Résoudre le problème du nombre inexact de mises à jour de base de données dans le développement Java

Jun 30, 2023 pm 07:01 PM
java 数据库更新 数量不准确。

Comment gérer le nombre inexact de mises à jour de bases de données dans le développement Java

Introduction :
Dans le développement Java, la base de données est un composant très important. Nous devons souvent effectuer des opérations de mise à jour sur la base de données, comme ajouter, modifier ou supprimer des données. Cependant, vous rencontrez parfois un problème : le nombre de lignes affectées renvoyé après une opération de mise à jour de la base de données n'est pas cohérent avec le nombre de lignes réellement mises à jour. Cet article détaillera les causes et les solutions à ce problème.

Cause du problème :
La principale raison du nombre inexact de mises à jour de la base de données est l'impact du mécanisme d'annulation des transactions de la base de données et des opérations de mise à jour par lots. Lorsque nous utilisons le mécanisme de traitement des transactions dans le code et effectuons plusieurs opérations de mise à jour dans la transaction, l'annulation de la transaction par la base de données entraînera un nombre inexact de mises à jour. De plus, les opérations de mise à jour par lots de la base de données peuvent également entraîner des numéros de mise à jour inexacts.

Solution :

  1. Utilisez la méthode de retour de la clé générée automatiquement :
    Lorsque vous effectuez une opération de mise à jour, vous pouvez utiliser la méthode de retour de la clé clé générée automatiquement. Obtenez le nombre exact de mises à jour. En Java, vous pouvez définir le paramètre Statement.RETURN_GENERATED_KEYS et utiliser la méthode getUpdateCount() pour obtenir le nombre précis de mises à jour après avoir effectué l'opération de mise à jour.

L'exemple de code est le suivant :

String sql = "INSERT INTO table_name (column1...) VALUES (value1...)";
try (Connection conn = dataSource.getConnection();
     PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
    // 设置参数
    // ...
    int affectedRows = stmt.executeUpdate();
    ResultSet generatedKeys = stmt.getGeneratedKeys();
    if (generatedKeys.next()) {
        long generatedKey = generatedKeys.getLong(1);
        // 处理自动生成的键
        // ...
    }
    // 处理更新数量
    // ...
}
Copier après la connexion
  1. Utiliser des déclencheurs au niveau des lignes de la base de données :
    Une autre solution au problème de numéros de mise à jour inexacts. La meilleure façon est d'utiliser les déclencheurs au niveau des lignes de la base de données. En déclenchant des déclencheurs avant et après l'opération de mise à jour, vous pouvez obtenir le nombre exact de lignes mises à jour.

L'exemple de code est le suivant :

CREATE TRIGGER update_trigger
BEFORE UPDATE ON table_name
FOR EACH ROW
BEGIN
   -- 更新前触发操作
    -- ...
END;

CREATE TRIGGER after_update_trigger
AFTER UPDATE ON table_name
FOR EACH ROW
BEGIN
  -- 更新后触发操作
   -- ...
END;
Copier après la connexion

Lorsque vous effectuez une opération de mise à jour dans du code Java, utilisez simplement l'instruction UPDATE pour mettre à jour directement, et le déclencheur être exécuté avant et après l’opération de mise à jour.

  1. Utiliser des procédures stockées de base de données :
    Une autre façon de résoudre le problème des numéros de mise à jour inexacts consiste à utiliser des procédures stockées de base de données. Dans une procédure stockée, vous pouvez obtenir le nombre exact de mises à jour via les paramètres de sortie ou renvoyer les résultats.

L'exemple de code est le suivant :

CREATE PROCEDURE update_procedure(IN param1 INT, OUT param2 INT)
BEGIN
    -- 执行更新操作
    -- ...
    SET param2 = ROW_COUNT();
END;
Copier après la connexion

Lors de l'appel de la procédure stockée en code Java, transmettez les paramètres qui doivent être mis à jour et utilisez le paramètres de sortie pour recevoir la quantité de mise à jour.

Résumé :
Les méthodes permettant de résoudre le problème des numéros de mise à jour de base de données inexacts dans le développement Java incluent : l'utilisation de la méthode de renvoi des clés générées automatiquement, l'utilisation des déclencheurs au niveau des lignes de la base de données et en utilisant les procédures stockées de la base de données. La méthode à utiliser dépend des besoins réels et de la prise en charge de la base de données. En choisissant rationnellement la méthode appropriée, le problème des numéros de mise à jour inexacts de la base de données peut être résolu et l'exactitude et la fiabilité des opérations de données peuvent être garanties.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

See all articles