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

So lösen Sie das Problem, dass der Docker-Container keinen Vim-Befehl hat

Finden Sie das Problem Als ich heute versuchte, d...

Bestimmen Sie die Richtung der Mauseingabe basierend auf CSS

In einer Front-End-Technologiegruppe sagte ein Gr...

Detaillierte Analyse des Diff-Algorithmus in React

Verständnis des Diff-Algorithmus in React diff -A...

Grafisches Tutorial zur Installation von VMware15.5 und Ubuntu20.04

1. Vorbereitung vor der Installation 1. Laden Sie...

Lösung zur Verwendung der Baidu-Freigabe auf der HTTPS-Seite

Seit der Aktivierung des https-Zugriffs für die g...

Implementierung eines Redis Master-Slave-Clusters basierend auf Docker

Inhaltsverzeichnis 1. Ziehen Sie das Redis-Image ...

Verwendung des Linux-Befehls „userdel“

1. Befehlseinführung Der Befehl userdel (User Del...

MYSQL METADATA LOCK (MDL LOCK) Theorie und Sperrtyptest

Inhaltsverzeichnis MYSQL METADATA LOCK (MDL LOCK)...

Vue implementiert die Produktregisterkarte der Produktdetailseitenfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Implementierungscode für die teilweise Aktualisierung einer HTML-Seite

Aktualisierung der Ereignisantwort: Aktualisierun...

Ein kurzer Vortrag über den MySQL-Index und die Redis-Sprungtabelle

Zusammenfassung Bei der Diskussion über MySQL-Ind...

So zeigen Sie Anwendungsprotokolle von Docker-Containern an

Docker-Attach-Befehl docker attach [options] 容器st...

So aktualisieren Sie https unter Nginx

Kaufzertifikat Sie können es beim Cloud Shield Ce...

MySQL verwendet SQL-Anweisungen zum Ändern von Tabellennamen

In MySQL können Sie die SQL-Anweisung „rename tab...