Mybatis + mysql verwendet gespeicherte Prozeduren, um Implementierungscode für Seriennummern zu generieren

Mybatis + mysql verwendet gespeicherte Prozeduren, um Implementierungscode für Seriennummern zu generieren

Verwenden Sie gespeicherte Prozeduren, um Transaktionen beim Betrieb der Datenbank zu starten und so eine Datenduplizierung durch gleichzeitige Vorgänge zu vermeiden.

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSerialNo`(IN tsCode VARCHAR(50),OUT result VARCHAR(200) )
BEGINNEN 
 DECLARE tsValue VARCHAR(50); 
 DECLARE tdToday VARCHAR(20);  
 DECLARE jetztdatum VARCHAR(20);  
 DECLARE tsQZ VARCHAR(50); 
 DECLARE t_error INTEGER DEFAULT 0; 
 DECLARE CONTINUE HANDLER FÜR SQLEXCEPTION SET t_error=1; 
 TRANSAKTION STARTEN; 
  /* UPDATE sys_sno SET sValue=sValue WHERE sCode=tsCode; */
  Wählen Sie sValue INTO tsValue FROM sys_sno WHERE sCode=tsCode; 
  Wählen Sie sQz in tsQZ aus sys_sno, wobei sCode = tsCode ist. 
 -- Es gibt keinen Datensatz in der Faktortabelle. Fügen Sie den Anfangswert ein, WENN tsValue NULL IST, DANN 
   Wählen Sie CONCAT (DATE_FORMAT (JETZT (), '%y%m'), '0001') in tsValue aus. 
   UPDATE sys_sno SET sValue=tsValue WHERE sCode=tsCode; 
   SELECT CONCAT(tsQZ,tsValue) INTO Ergebnis; 
  ANDERS     
   Wählen Sie Teilzeichenfolge (tsValue, 1,4) in tdToday aus. 
   Wählen Sie „Convert(DATE_FORMAT(NOW(),'%y%m'),SIGNED)“ in „nowdate“ aus.
   -- Bestimmen Sie, ob Jahr und Monat aktualisiert werden müssen, WENN tdToday = nowdate, DANN 
    SETZEN Sie tsValue=KONVERTIEREN(tsValue,VORZEICHENBESCHRIFTEN) + 1; 
   ANDERS 
    Wählen Sie CONCAT (DATE_FORMAT (JETZT (), '%y%m'), '0001') in tsValue aus. 
   ENDE, WENN; 
   UPDATE sys_sno SET sValue = tsValue WHERE sCode = tsCode; 
   SELECT CONCAT(tsQZ,tsValue) INTO Ergebnis; 
  ENDE, WENN; 
  WENN t_error =1 DANN 
  ROLLBACK; 
  SET-Ergebnis = „Fehler“; 
  ANDERS 
  BEGEHEN; 
  ENDE, WENN; 
  SELECT-Ergebnis;  
ENDE;
dao
Integer getFaultNo(Map<String, String> parameterMap);

xml

<update id="getFaultNo" parameterMap="getFaultMap" statementType="AUFRUFBAR">
  Rufen Sie GetSerialNo(?,?) auf
 </Aktualisieren>
 <!--
  parameterMap.put("tsCode", 0);
  parameterMap.put("Ergebnis", -1);
  -->
 <parameterMap Typ="java.util.Map" id="getFaultMap">
  <parameter property="tsCode" mode="IN" jdbcType="VARCHAR"/>
  <parameter property="Ergebnis" mode="OUT" jdbcType="VARCHAR"/>
 </parameterMap>

Anruf

Map<String, String> parameterMap = neue HashMap<String, String>();
  parameterMap.put("tsCode", "a");
  parameterMap.put("Ergebnis", "-1");
  faultMapper.getFaultNo(parameterMap);
  // Fehlerprotokoll einfügen (Haupttabelle)
  wenn (!parameterMap.get("Ergebnis").equals("-1") && 
    !parameterMap.get("Ergebnis").equals("Fehler")) {
   //Erfolg} sonst {
   neue RuntimeException werfen();
  }

Zusammenfassen

Das Obige ist der Implementierungscode von mybatis+mysql, der gespeicherte Prozeduren verwendet, um vom Editor eingeführte Seriennummern zu generieren. Ich hoffe, er wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So verwenden Sie gespeicherte MySQL-Prozeduren in Mybatis
  • mysql + mybatis implementiert gespeicherte Prozedur + Transaktion + gleichzeitigen Mehrfachabruf von Seriennummern

<<:  Schritte zur Einführung von PWA in ein Vue-Projekt

>>:  Nginx-Inhaltscache und allgemeine Parameterkonfigurationsdetails

Artikel empfehlen

Analyse der MySql CURRENT_TIMESTAMP-Funktion anhand eines Beispiels

Beim Erstellen eines Zeitfelds STANDARD CURRENT_T...

Allgemeine Front-End-JavaScript-Methodenkapselung

Inhaltsverzeichnis 1. Geben Sie einen Wert ein un...

Detaillierte Erklärung zum Anzeigen der MySQL-Speichernutzung

Vorwort Dieser Artikel stellt hauptsächlich die r...

Detaillierte Erklärung des Inline-Formats von HTML-Tabellen

Inline-Format <colgroup>…</colgroup> ...

Drei gängige Möglichkeiten zum Einbetten von CSS in HTML-Dokumente

Die folgenden drei Methoden werden häufig verwende...

WeChat-Applet implementiert Anmeldeschnittstelle

Die Anmeldeoberfläche des WeChat-Applets ist zu I...

Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen

Amtliche Dokumentation: https://dev.mysql.com/doc...

CentOS 7 SSHD ändern | Root-Login und SSHD-Port-Skriptdefinition verbieten

1. Erstellen Sie einen neuen Benutzer wwweee000 [...

Vue erzielt einen nahtlosen Karusselleffekt

In diesem Artikel wird der spezifische Code von V...

Einfache Implementierungsmethode der bidirektionalen Datenbindung im JS-Projekt

Inhaltsverzeichnis Vorwort Publish-Subscriber-Mus...

Beispielcode für CSS-Stacking und Z-Index

Kaskadierung und kaskadierende Ebenen HTML-Elemen...

9 Tipps zur MySQL-Datenbankoptimierung

Inhaltsverzeichnis 1. Wählen Sie die am besten ge...

Lösung für den MySQL-Root-Passwortfehler Nummer 1045

MySQL-Dienst stoppen Klicken Sie in Windows mit d...