Lösen Sie das Spleißproblem beim Löschen von Bedingungen in myBatis

Lösen Sie das Spleißproblem beim Löschen von Bedingungen in myBatis

Ich habe heute gerade Mybatis gelernt und einige einfache Hinzufügungen, Löschungen, Änderungen und Abfragen an der Datenbank vorgenommen. Beim Ausführen eines Löschvorgangs ist es sehr einfach, einen einzelnen Datensatz zu löschen. Beim stapelweisen Löschen ist es jedoch etwas mühsam, die Löschbedingungen zusammenzufügen. Nachfolgend finden Sie eine Aufzeichnung der Methode.

Wenn die Löschbedingung in SQL-Anweisungen nicht eindeutig ist, gibt es zwei Arten von SQL-Anweisungen zum Löschen. Eine besteht darin, die Bedingungen in where zu verwenden oder zu verketten, z. B. „Löschen aus Tabellenname“, wobei Bedingung 1 oder Bedingung 2 ist, und die andere darin, in zu verwenden, z. B. „Löschen aus Tabellenname“, wobei Element in () ist.

Verwenden Sie die erste Löschanweisung, um mapping.xml in mybatis einzufügen:

Verwenden Sie die zweite Löschanweisung, um mapping.xml in mybatis einzufügen:

Der obige Löschvorgang ist grundsätzlich abgeschlossen. Es gibt jedoch einen Fehler. Wenn in der Abfragebedingung idList kein Element vorhanden ist, werden die Datensätze in der gesamten Tabelle ac01 gelöscht. Daher müssen wir die obige Methode verbessern.

Die zweite Löschanweisung wurde verbessert:

Nachdem die erste Löschanweisung verbessert wurde:

An diesem Punkt ist der Löschvorgang vollständig abgeschlossen.

Zusatzwissen: Achten Sie bei der Abfrage von myBatis auf die Spleißbedingungen

<!-- Eine Bedingung hinzufügen-->

<sql id="queryjiachaAllPageId">
 <wo>
  <if test="danweimc !=null und danweimc !=''">
  und jcb.danweimc wie '%${danweimc}%'
  </if>
  <if test="ge_jianchaks !=null und ge_jianchaks !=''">
  und DATE_FORMAT(jcb.jianchaks, '%Y-%m-%d') >= #{ge_jianchaks}
  </if>
  <if test="le_jianchaks != null und le_jianchaks != ''">
  und DATE_FORMAT(jcb.jianchaks, '%Y-%m-%d') &lt;= #{le_jianchaks}
  </if>
  
  <if test="jiancharxm !=null und jiancharxm !=''">
  und jcb.jiancharxm wie '%${jiancharxm}%'
  </if>
  <if test="zhuangtai !=null und zhuangtai !=''">
  und yhb.zhuangtai = ${zhuangtai}
  </if>
  <if test="danweilb !=null and danweilb !=''">
  und yhb.yinhuanmc wie '${danweilb}%'
  </if>
  <if test="jiedao != null und jiedao !='' und jiedao !='110105000000'">
  und jcb.jiedao=#{jiedao}
  </if>
  <if test="danweimcs != null und danweimcs !=''">
  und jcb.danweimc = #{danweimcs}
  </if>
 </wo>
 </sql>

So wird beispielsweise bei den Einspruchsfragen entweder „und“ oder „nein“ angehängt. Bitte beachten Sie, dass bei einer „und“- oder „nein“-Abfrage ein Fehler gemeldet wird.

Der obige Artikel zur Lösung des Spleißproblems beim Löschen von Bedingungen in myBatis ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Mybatis-plus verwendet Condition zum Verketten von SQL-Anweisungen
  • MyBatis verkettet SQL-Strings dynamisch
  • MybatisPlus implementiert die umgekehrte Verkettung von Zeichenfolgen

<<:  Vue implementiert WebSocket-Kundendienst-Chatfunktion

>>:  Anweisungen zur Verwendung der Option --rm von Docker Run

Artikel empfehlen

Erstellen Sie in 5 Minuten einen WebRTC-Videochat

Im vorherigen Artikel habe ich den detaillierten ...

So überprüfen Sie die Version des Kali Linux-Systems

1. Überprüfen Sie die Kali-Linux-Systemversion Be...

Zusammenfassung der zwölf Methoden der Vue-Wertübertragung

Inhaltsverzeichnis 1. Vom Vater zum Sohn 2. Vom S...

So implementieren Sie einen einfachen HTML-Videoplayer

Dieser Artikel stellt die Methode zur Implementie...

Vue macht Div-Höhe verschiebbar

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

So implementieren Sie geplante MySQL-Aufgaben zur Datensicherung unter Linux

Vorwort Backup ist die Grundlage der Notfallwiede...

So verwenden Sie die HTML 5 Drag & Drop-API in Vue

Die Drag & Drop-API fügt ziehbare Elemente zu...

Detailliertes Tutorial zur Installation von MySQL 8.0.13 (rpm) auf Centos7

yum oder rpm? Die Yum-Installationsmethode ist se...