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:
|
<<: Schritte zur Einführung von PWA in ein Vue-Projekt
>>: Nginx-Inhaltscache und allgemeine Parameterkonfigurationsdetails
Inhaltsverzeichnis 1.parseInt(Zeichenfolge, Basis...
Wenn Sie „display:flex, justify-content: space-be...
Kürzlich wurde die neue Anforderung „Front-End-Ca...
1. Wie MySQL Indizes verwendet Indizes werden ver...
Breite: automatisch Das untergeordnete Element (e...
Inhaltsverzeichnis Vorwort 1. for-Schleife 2. whi...
Bevor ich anfange, möchte ich betonen, dass proce...
1. Entdecken Sie das Problem © ist das Co...
In diesem Artikel wird der spezifische Code von j...
1. Dokumentationsregeln 1. Groß-/Kleinschreibung b...
1. Beschreibung Früher haben wir über die Install...
Vorwort In Datenbanken wie Oracle und SQL Server ...
Laden Sie mysql-5.7.19-winx64 von der offiziellen...
<br />Beim Textdesign konzentrieren wir uns ...
Die Protokolle in MySQL umfassen: Fehlerprotokoll...